chen2j 发表于 2015-1-6 21:47:07

怎么获取一个文件夹里新增了一个PDF文件,并且获取其文件名?

我想打印CAD 文档成PDF文档,我想判断PDF文档是否打印成功,想用autoit监视某个文件夹是否有新增PDF文件,并且获取其名称,这个用什么判断?
由于这个是Autocad VBA和autoit结合的一段程序,因此有可能伴随CAD改名。所以通过CAD文档的标题监视某个名字的PDF可能不成功。
求高手指教!

zhouhaijin 发表于 2015-1-6 23:09:19

本帖最后由 zhouhaijin 于 2015-1-7 00:06 编辑

#include <File.au3>
#include <Array.au3>

While 1
        $FileListA = _FileListToArray(@DesktopDir, "*.PDF")
        _ArrayDelete($FileListA, 0)
        Sleep(1000)
        $FileListB = _FileListToArray(@DesktopDir, "*.PDF")
        _ArrayDelete($FileListB, 0)
        $aC = ArrayFindDifEle($FileListA, $FileListB)
        If $aC > 0 Then _ArrayDisplay($aC, "添加了新PDF文件")
WEnd


Func ArrayFindDifEle(ByRef $aA, ByRef $aB)
        Local $aRetn =
        If Not IsArray($aA) Or Not IsArray($aB) Then Return $aRetn
        For $a In $aA
                Assign('_' & String(StringToBinary(StringUpper($a))), 0, 1)
        Next
        Local $Num = 0
        For $b In $aB
                If Not IsDeclared('_' & String(StringToBinary(StringUpper($b)))) Then
                        $Num += 1
                        ReDim $aRetn[$Num + 1]
                        $aRetn[$Num] = $b
                EndIf
        Next
        $aRetn = $Num
        Return $aRetn
EndFunc   ;==>ArrayFindDifEle

chen2j 发表于 2015-1-6 23:38:32

回复 2# zhouhaijin

哇,太棒了,简直就是量身定制的啊!非常感谢!

zhouhaijin 发表于 2015-1-7 00:08:25

回复zhouhaijin

哇,太棒了,简直就是量身定制的啊!非常感谢!
chen2j 发表于 2015-1-6 23:38 http://www.autoitx.com/images/common/back.gif


   _FileListToArray可以直接筛选,改了一下

netegg 发表于 2015-1-7 03:34:23

本帖最后由 netegg 于 2015-1-7 03:42 编辑

#include <File.au3>
#include <Array.au3>
$FileListA = _FileListToArray(@DesktopDir, "*.PDF",1)
$FileListB = _FileListToArray(@DesktopDir, "*.PDF",1)
$i=1
while Not($i > $fileListA)
If not(_arraysearch($FileListA, $FileListB[$i])) Then exitloop
$i+=1
WEnd
msgbox(0,0,$FileListB[$i])
页: [1]
查看完整版本: 怎么获取一个文件夹里新增了一个PDF文件,并且获取其文件名?