[已解决]查找不确定在哪里的 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 不用遍历也可以
#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号码")
我运行不了,,,你用的什么编译器 回复 2# haijie1223
我测试了一下,不行,因为我要吧这个程序用在刚安装完系统的情况下使用。
注册表里面是没有QQ的任何信息,只有遍历文件夹里面才可以获取。。。 回复 2# haijie1223
有办法解决吗?? 回复 6# 862228699
有 回复 7# haijie1223
感谢~~~~~~~~~~~~{:face (332):} 遍历效率好慢
#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 确实慢。。。半天都没运行完。。。运行完了。 回复 9# haijie1223
不过我发现了。现在腾讯安装QQ,默认都是在我的文档下面建立了一个 QQ号文件夹。。 回复 9# haijie1223 Local $size
$size = DirGetSize (@MyDocumentsDir&"\Tencent Files", 3)
MsgBox(0, "不计算子文件夹的文件夹个数", $size)这个可以计算里面有多少个文件夹,但是要怎么循环列出文件夹的名字呢?
如果文件夹名字 不是全数字,就不用列出。。请大神帮我一下。。。谢谢。。。。 回复 11# 862228699
NT6 系统才会多出这个文件夹,NT5.0及以下没有吧。 thanks 4 sharing!
页:
[1]