虎虎虎 发表于 2012-10-12 00:05:58

怎样匹配判断文件或目录是否存在?【已解决】

本帖最后由 虎虎虎 于 2012-10-13 19:38 编辑

怎么判断已知文件名是否存在,我知道怎么做问:如果不知道文件名或目录名应该怎么判断?

解决了:
谢谢“smartzbs”的函数:http://www.autoitx.com/forum.php?mod=viewthread&tid=31034&highlight=%B1%E9%C0%FA

辣椒龙 发表于 2012-10-12 09:18:08

FileFindFirstFile

drunk 发表于 2012-10-12 09:59:04

FileExists
像这种问题楼主多看下帮助就知道了!

Neuis 发表于 2012-10-12 10:46:40

_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 ),这样你就可以找到你所要找的文件

xiehuahere 发表于 2012-10-12 10:50:38

回复 3# drunk



即使不是固定的,也至少要是有规律的,还可以通过正则来匹配下。
楼主连文件名或文件夹名都不知道,那就任何办法都没有了。

一个东西都不知道是什么,怎么能判断是否存在呢。

虎虎虎 发表于 2012-10-12 18:41:35

本帖最后由 虎虎虎 于 2012-10-12 19:36 编辑

不好意思,帖子是用平板发的,所以,不是很详细,我想达到的目的是如下:

假设在@ProgramsDir &"\某某软件"里有1..2..n,n个目录及其子目录及文件,我的想法是:DirRemove(@ProgramsDir & "\某某软件\1", 1) ;先删除“1”。

接下来怎么在判断“某某软件”里是否还存在2...n的文件,如果不存在,删除掉“某某软件”。

注:2..n为不确定字符的文件【目录】名。

haijie1223 发表于 2012-10-12 20:16:27

感觉楼主表达的还是不清楚

虎虎虎 发表于 2012-10-12 20:32:29

回复 8# haijie1223


就像安装软件时,创建【程序组】快捷方式,删除时,如果创建程序组里存在除了所安装的软件的快捷方式,则不删除程序组,反之删除。

user3000 发表于 2012-10-12 23:34:07

本帖最后由 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, '', '存在别的文件或目录')

fenhanxue 发表于 2012-10-13 00:50:24

FileExists ?
页: [1]
查看完整版本: 怎样匹配判断文件或目录是否存在?【已解决】