关于删除文件与目录的删除提示!请教【已解决】
本帖最后由 ttmv2019sx 于 2025-2-19 15:03 编辑Local $i = 0
$temp_arr = _FileListToArray($temp, '*', $FLTA_FILESFOLDERS)
$phone_arr = _FileListToArray($phone, '*', $FLTA_FILESFOLDERS)
ProgressOn('正在清理...', '', '', -1, -1)
Do
If StringInStr(FileGetAttrib($temp &'\'& $temp_arr[$i + 1]), 'D') Then
DirRemove($temp &'\'& $temp_arr[$i + 1], 1)
Else
FileDelete($temp &'\'& $temp_arr[$i + 1])
EndIf
If StringInStr(FileGetAttrib($phone &'\'& $phone_arr[$i + 1]), 'D') Then
DirRemove($phone &'\'&$phone_arr[$i + 1], 1)
Else
FileDelete($phone &'\'& $phone_arr[$i + 1])
EndIf
$temp_new = Round(DirGetSize($temp) / 1024 / 1024)
$phone_new = Round(DirGetSize($phone) / 1024 / 1024)
$Progress = ($temp_new+$phone_new) / ($temp_old+$phone_old) * 100
Sleep(200)
ProgressSet(100 - $Progress)
$i = $i + 1
Until $i = $temp_arr+$phone_arr
Else
Exit
EndIf
请问一下,删除$temp路径目录或是$phone路径目录中的文件与目录,如果$temp其中文件与目录被删除完了,另一个$phone路径目录下还有文件与目录,程序就会中止,因为获取数组$temp中为空了,有什么判断可以跳过继续执行$phone路径目录下的文件与目录的删除操作吗,反之也是这个要求,或者是这个代码是否可以优化一下,麻烦各路大神看一下,谢谢,A版请帮助查看一下,谢谢
错误提示:If StringInStr(FileGetAttrib($temp &'\'& $temp_arr[$i + 1]), 'D') Then
If StringInStr(FileGetAttrib($temp &'\'& ^ ERROR
提问的代码应极简且可运行,并具通用性
Local $temp_arr =
Local $phone_arr =
Local $i = 1, $max = $temp_arr
If $phone_arr > $max Then $max = $phone_arr
Do
ConsoleWrite($i & @CRLF)
If $i <= $temp_arr Then
ConsoleWrite('操作 $temp_arr[' & $i & '] 的具体代码' & @CRLF)
EndIf
If $i <= $phone_arr Then
ConsoleWrite('操作 $phone_arr[' & $i & '] 的具体代码' & @CRLF)
EndIf
$i += 1
Until $i = $max + 1 afan 发表于 2025-2-18 14:17
提问的代码应极简且可运行,并具通用性
确实A大,你的代码非常的简,我没有想到,把TEMP与PHONE两个数组的总数比较一下,然后循环用最大哪个, afan 发表于 2025-2-18 14:17
提问的代码应极简且可运行,并具通用性
就是使用发现,如果170万个文件,要删除的话,发现实在是太慢了,这样一个一个删除的,好像不如DEL来的快,呵呵 ttmv2019sx 发表于 2025-2-19 15:02
就是使用发现,如果170万个文件,要删除的话,发现实在是太慢了,这样一个一个删除的,好像不如DEL来的快 ...
只帮你看了1#的错误提示相关问题,至于删除,你这是删除全部文件,用得着先_FileListToArray列出清单再一个个删吗。。。 直接删了文件夹不就行了。
(170万个文件,这么大体量的文件数,不应该手动确认删除吗?而且也更简单直接吧,为啥还写程序去干事)
页:
[1]