yikang8888 发表于 2011-10-12 23:47:30

文件生成监控[已解决]

本帖最后由 yikang8888 于 2011-10-19 14:09 编辑

各位大师,谁能帮忙指教一下,如何实现监控某个文件夹下是否有新的txt文件生成,一旦生成就将其复制到其他目录,并删除.
感谢!

xms77 发表于 2011-10-13 01:54:30

循环扫描目标文件夹用_FileListToArray("C:\123","*.txt", 1),如果数组数量增多了,就逐个比较文件名做出判断哪个是新增加的,然后你知道的

tsui 发表于 2011-10-13 03:17:35

FileFindFirstFile

xms77 发表于 2011-10-13 04:50:34

回复 1# yikang8888
以下代码基本能满足你的要求,但是美中不足的地方就是不能手动删除目标文件夹中的txt文件,会失灵的#include <file.au3>
#include <array.au3>
$FileList1 = _FileListToArray("D:\autoit","*.txt", 1)
;_ArrayDisplay($Filelist1)

If $filelist1 <> 0Then
        While 1
                $FileList2 = _FileListToArray("D:\autoit","*.txt", 1)
                If $filelist2 <> 0 Then
                        If $Filelist2 <> $Filelist1 Then
                                For $i = 1 To $Filelist2
                                        $count = 0
                                        For $j = 1 To $Filelist1
                                                If $filelist2[$i] == $filelist1[$j] Then
                                                        ExitLoop
                                                Else
                                                        $count += 1
                                                EndIf
                                        Next
                                        If $count >= $filelist1 Then
                                                FileCopy("D:\autoit\"&$filelist2[$i],"D:\123\"&$filelist2[$i],9)
                                                FileDelete("D:\autoit\"&$filelist2[$i])
                                        EndIf
                                Next
                        EndIf
                EndIf
                Sleep(100)
        WEnd
Else
        While 1
                $FileList2 = _FileListToArray("D:\autoit","*.txt", 1)
                If Not @error Then
                        For $i = 1 To $filelist2
                                FileCopy("D:\autoit\"&$filelist2[$i],"D:\123\"&$filelist2[$i],9)
                                FileDelete("D:\autoit\"&$filelist2[$i])
                        Next
                EndIf
                Sleep(100)
        WEnd
EndIf

yikang8888 发表于 2011-10-13 16:59:36

谢谢指导{:face (356):}

amxi 发表于 2011-10-13 20:43:34

If FileExists("source path\*.txt") Then
   FileCopy("source path\*.txt","destination path")
;也可以用 FileMove函数
EndIf

yikang8888 发表于 2011-10-13 20:56:11

回复 4# xms77

你这个如果每次生成的txt是一样的名字,复制过去的时候会覆盖呀!
怎么能不覆盖呢?

xms77 发表于 2011-10-14 04:16:46

回复 6# amxi
对头,简单一点!

xms77 发表于 2011-10-14 04:18:34

回复 7# yikang8888
不覆盖的话,不保存还是更名保存啊?

redapple2008 发表于 2011-10-14 15:46:34

收藏,学了,感谢!

yikang8888 发表于 2011-10-14 17:33:26

回复 9# xms77

改名字也行,我自己解决了,感谢!

yikang8888 发表于 2011-10-14 17:34:33

回复 6# amxi

你的方法可以24小时监控吗?

xms77 发表于 2011-10-14 21:30:38

回复 11# yikang8888
恭喜,解决了就可以结贴了,加【已解决】,这是论坛规定的,呵呵!
页: [1]
查看完整版本: 文件生成监控[已解决]