怎样匹配判断文件或目录是否存在?【已解决】
本帖最后由 虎虎虎 于 2012-10-13 19:38 编辑怎么判断已知文件名是否存在,我知道怎么做问:如果不知道文件名或目录名应该怎么判断?
解决了:
谢谢“smartzbs”的函数:http://www.autoitx.com/forum.php?mod=viewthread&tid=31034&highlight=%B1%E9%C0%FA FileFindFirstFile FileExists
像这种问题楼主多看下帮助就知道了! _FindFile(@HomeDrive, "WindowsAPPS")
Func _FindFile($sPath, $sFileName)
$aFileList = _FileListToArray($sPath)
If Not @error Then
For $i = 1 To $aFileList
If $aFileList[$i] = $sFileName Then
$path = $sPath & '\' & $aFileList[$i]
FileWriteLine("找到的文件.txt",$sPath & '\' & $aFileList[$i] & "Version:" & FileGetVersion ($path))
EndIf
_FindFile($sPath & '\' & $aFileList[$i], $sFileName)
Next
EndIf
EndFunc ;==>_FindFile我之前也遇到这样的问题,后来在论坛找到了答案,这是一个递归遍历,会将相同文件名全部
找出来,如果记不全文件名也可以将If $aFileList[$i] = $sFileName 换成If StringInStr ($aFileList[$i],$sFileName ),这样你就可以找到你所要找的文件 回复 3# drunk
即使不是固定的,也至少要是有规律的,还可以通过正则来匹配下。
楼主连文件名或文件夹名都不知道,那就任何办法都没有了。
一个东西都不知道是什么,怎么能判断是否存在呢。 本帖最后由 虎虎虎 于 2012-10-12 19:36 编辑
不好意思,帖子是用平板发的,所以,不是很详细,我想达到的目的是如下:
假设在@ProgramsDir &"\某某软件"里有1..2..n,n个目录及其子目录及文件,我的想法是:DirRemove(@ProgramsDir & "\某某软件\1", 1) ;先删除“1”。
接下来怎么在判断“某某软件”里是否还存在2...n的文件,如果不存在,删除掉“某某软件”。
注:2..n为不确定字符的文件【目录】名。 感觉楼主表达的还是不清楚 回复 8# haijie1223
就像安装软件时,创建【程序组】快捷方式,删除时,如果创建程序组里存在除了所安装的软件的快捷方式,则不删除程序组,反之删除。 本帖最后由 user3000 于 2012-10-12 23:52 编辑
无语.
那你搜索 "某某软件" 软件目录下文件, 列进数组, 如果确知文件名为1个, 则该数组元素大于1时, 就是还存在别的文件或目录了.
一个小问题, 再三都表述不清的样子.#include <file.au3>
Local $files = _FileListToArray(@ProgramsDir & "\某某软件") ; 已知道此目录必定存在 1 个文件.
If @error Then Exit
If $files > 1 Then MsgBox(0, '', '存在别的文件或目录') FileExists ?
页:
[1]