本帖最后由 2482230 于 2011-5-23 21:29 编辑
这是个提取文件和文件夹的代码
文件夹列表
mywork┬AA001
│ ├BB001
│ │ └─bb.jpg bb.png ......
│ ├BB001c
│ │ └─bb.jpg bb.png ......
│ ├BB001D
│ │ └─bb.jpg bb.png ......
│ ├BB001E
│ │ └─bb.jpg bb.png ......
│ └bb.jpg bb.png ......
├AA002
│ ├BB002
│ │ └─bb.jpg bb.png ......
│ ├BB002c
│ │ └─bb.jpg bb.png ......
│ ├BB002D
│ │ └─bb.jpg bb.png ......
│ ├BB002E
│ │ └─bb.jpg bb.png ......
│ └bb.jpg bb.png ......
├AA...都是这种格式的
有如下问题
1:我把要提取的文件全部都复制出来到一个文件夹下了,然后再按照名字提取子目录下的文件出来,最后删除没有用的,有没有办法不用复制出来文件,直接提取子目录下的文件,因为文件夹比较多,提取出来非常占用空间,我改了好几次只能提取子目录下第一个文件夹里的文件。
2:我的思路:先探测文件夹下名字带有某某字母或数字或文字的文件夹,然后逐一进入每一个文件夹进行提取,这样应该不会很耗机器吧......
3:我现在的这段代码遇到文件比较多的时候最后删除不掉剩余多余的文件
4:如何能加入一个进度条,可以看到提取的进度,有时候提取文件多的话等的非常茫然,还以为机器死了呢,这个可以先不用解决,主要是能把上面的解决了。
麻烦高手帮忙改改 尽量把源码传上来我学习学习#NoTrayIcon
#Region ;**** 参数创建于 ACNWrapper_GUI ****
#AutoIt3Wrapper_outfile=MoveCopy.exe
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
Dim $search1, $search2
$Path1 = IniRead("Set.ini", "path", "1", "NotFound")
$Path2 = IniRead("Set.ini", "path", "2", "NotFound")
$Path3 = IniRead("Set.ini", "path", "3", "NotFound")
ToolTip(@CR & " 正在提取文件 请等待…… " & @CR, @DesktopWidth - 320, @DesktopHeight - 120)
$search1 = FileFindFirstFile($Path1)
If $search1 = -1 Then
MsgBox(0, "错误", "没有文件/目录 匹配搜索")
Exit
EndIf
While 1
$file = FileFindNextFile($search1)
If @error Then ExitLoop
DirCopy($file, $Path3 & "\RECYCLER", 1)
WEnd
FileClose($search1)
FileChangeDir($Path3 & "\RECYCLER")
$search2 = FileFindFirstFile($Path2)
If $search2 = -1 Then
MsgBox(0, "错误", "没有文件/目录 匹配搜索")
Exit
EndIf
While 1
$file1 = FileFindNextFile($search2)
If @error Then ExitLoop
FileMove($file1, $Path3, 9)
WEnd
FileClose($search2)
Sleep(1000)
DirRemove($Path3 & "\RECYCLER", 1)
ShellExecute($Path3)
Set.ini[path]
1=AA*.*
2=*c.*
3=D:\100123
下面是我的文件 只提取 11\AA0011A\AA0011ss 下的 所有文件
http://u.115.com/file/dn683h41#Download
11.rar
提取码:dn683h41 |