862228699 发表于 2016-3-11 19:40:47

[已解决]查找不确定在哪里的 Tencent Files文件夹 然后在列出文件夹内的文件夹名

本帖最后由 862228699 于 2016-3-19 09:21 编辑

非常感谢你,帮我解决了几个月来最伤头的问题。。。。
在问你一个代码问题。。
我想查找腾讯QQ,存的QQ号的文件夹       Tencent Files      这个文件夹,这个文件夹不定在哪个盘符,有可能在C,D,E,F,也有可能在某个二级目录。三级目录。4级目录

这个目录下,有很多QQ号文件夹,我怎么才能把这些号码提取出来。。。。
下载代码可以查找根目录,但无法找到2级,或者下下级。。$source = "\Tencent Files" ;盘中根目录下的文件夹
;$dest = @ScriptDir & "\" ;复制到目标文件夹
$var = DriveGetDrive("all")
If Not @error Then
      For $i = 1 To $var ;遍历获取到的多个可移动磁盘
                If ($var[$i] <> "A:") Then
                        If FileExists($var[$i] & $source) Then ;如果找到U盘里面有文件夹
                              MsgBox(0, 0, "找到")
                        Else
                              MsgBox(0, 0, "没有找到")
                              
                        EndIf
                EndIf
      Next
EndIf

haijie1223 发表于 2016-3-12 09:18:29

不用遍历也可以

#include <file.au3>
#include <array.au3>
Local $InstallDir, $aFileList, $str, $aQQ
$InstallDir = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Tencent\QQ2009", "Install")
If FileExists($InstallDir & "\Users") Then $aFileList = _FileListToArray($InstallDir & "\Users")
If IsArray($aFileList) Then $str = _ArrayToString($aFileList, "|")
$aQQ = StringRegExp($str, "\d{5,15}", 3)
_ArrayDisplay($aQQ,"QQ号码")

862228699 发表于 2016-3-12 09:29:06

我运行不了,,,你用的什么编译器

862228699 发表于 2016-3-12 09:33:00

回复 2# haijie1223
我测试了一下,不行,因为我要吧这个程序用在刚安装完系统的情况下使用。
注册表里面是没有QQ的任何信息,只有遍历文件夹里面才可以获取。。。

862228699 发表于 2016-3-12 09:37:36

862228699 发表于 2016-3-13 17:09:01

回复 2# haijie1223


    有办法解决吗??

haijie1223 发表于 2016-3-13 17:49:43

回复 6# 862228699


    有

862228699 发表于 2016-3-13 17:56:20

回复 7# haijie1223
感谢~~~~~~~~~~~~{:face (332):}

haijie1223 发表于 2016-3-15 11:59:20

遍历效率好慢
#include <file.au3>
#include <array.au3>

Global $aArray, $Num = 0, $aDISK
Global $aFileList, $InstallDir, $aFilePath, $str, $aQQ
$aDISK = DriveGetDrive("ALL")
If Not @error Then
        For $I = 1 To $aDISK
                If DriveStatus($aDISK[$I]) = "READY" And $aDISK[$I] <> @HomeDrive Then _SEARCH($aDISK[$I], "QQ.EXE")
                If UBound($aArray) > 1 Then
                        For $j = 1 To UBound($aArray) - 1
                                $aFilePath = StringRegExp($aArray[$j], ".+(?=\\)", 3)
                                If IsArray($aFilePath) Then $InstallDir = $aFilePath & "\Users"
                                If FileExists($InstallDir) Then $aFileList = _FileListToArray($InstallDir)
                                If IsArray($aFileList) Then $str = _ArrayToString($aFileList, "|")
                                $aQQ = StringRegExp($str, "\d{5,15}", 3)
                                _ArrayDisplay($aQQ, "QQ号码")
                        Next
                        ExitLoop
                EndIf
        Next
EndIf


Func _SEARCH($path, $filelx)
        Local $filelist
        Local $folders
        Local $I, $j, $newpath
        $filelist = _FileListToArray($path, $filelx, 1)
        If Not @error Then
                If $filelist > 0 Then
                        For $I = 1 To $filelist
                                $Num = $Num + 1
                                ReDim $aArray
                                $aArray[$Num] = $path
                        Next
                EndIf
        EndIf
        $folders = _FileListToArray($path, "*", 2)
        If Not @error Then
                If $folders > 0 Then
                        For $j = 1 To $folders
                                $newpath = $path & "\" & $folders[$j]
                                _SEARCH($newpath, $filelx)
                        Next
                EndIf
        EndIf
EndFunc   ;==>_SEARCH

862228699 发表于 2016-3-15 18:15:18

确实慢。。。半天都没运行完。。。运行完了。

862228699 发表于 2016-3-15 18:16:00

回复 9# haijie1223
不过我发现了。现在腾讯安装QQ,默认都是在我的文档下面建立了一个 QQ号文件夹。。

862228699 发表于 2016-3-15 23:14:33

回复 9# haijie1223 Local $size
$size = DirGetSize (@MyDocumentsDir&"\Tencent Files", 3)
MsgBox(0, "不计算子文件夹的文件夹个数", $size)这个可以计算里面有多少个文件夹,但是要怎么循环列出文件夹的名字呢?
如果文件夹名字 不是全数字,就不用列出。。请大神帮我一下。。。谢谢。。。。

haijie1223 发表于 2016-3-16 07:34:48

回复 11# 862228699


    NT6 系统才会多出这个文件夹,NT5.0及以下没有吧。

z7c9 发表于 2016-3-16 08:58:00

thanks 4 sharing!
页: [1]
查看完整版本: [已解决]查找不确定在哪里的 Tencent Files文件夹 然后在列出文件夹内的文件夹名