文件生成监控[已解决]
本帖最后由 yikang8888 于 2011-10-19 14:09 编辑各位大师,谁能帮忙指教一下,如何实现监控某个文件夹下是否有新的txt文件生成,一旦生成就将其复制到其他目录,并删除.
感谢! 循环扫描目标文件夹用_FileListToArray("C:\123","*.txt", 1),如果数组数量增多了,就逐个比较文件名做出判断哪个是新增加的,然后你知道的 FileFindFirstFile 回复 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 谢谢指导{:face (356):} If FileExists("source path\*.txt") Then
FileCopy("source path\*.txt","destination path")
;也可以用 FileMove函数
EndIf
回复 4# xms77
你这个如果每次生成的txt是一样的名字,复制过去的时候会覆盖呀!
怎么能不覆盖呢? 回复 6# amxi
对头,简单一点! 回复 7# yikang8888
不覆盖的话,不保存还是更名保存啊? 收藏,学了,感谢! 回复 9# xms77
改名字也行,我自己解决了,感谢! 回复 6# amxi
你的方法可以24小时监控吗? 回复 11# yikang8888
恭喜,解决了就可以结贴了,加【已解决】,这是论坛规定的,呵呵!
页:
[1]