ttmv2019sx 发表于 5 天前

关于删除文件与目录的删除提示!请教【已解决】

本帖最后由 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

afan 发表于 5 天前

提问的代码应极简且可运行,并具通用性
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

ttmv2019sx 发表于 5 天前

afan 发表于 2025-2-18 14:17
提问的代码应极简且可运行,并具通用性

确实A大,你的代码非常的简,我没有想到,把TEMP与PHONE两个数组的总数比较一下,然后循环用最大哪个,

ttmv2019sx 发表于 4 天前

afan 发表于 2025-2-18 14:17
提问的代码应极简且可运行,并具通用性

就是使用发现,如果170万个文件,要删除的话,发现实在是太慢了,这样一个一个删除的,好像不如DEL来的快,呵呵

afan 发表于 4 天前

ttmv2019sx 发表于 2025-2-19 15:02
就是使用发现,如果170万个文件,要删除的话,发现实在是太慢了,这样一个一个删除的,好像不如DEL来的快 ...

只帮你看了1#的错误提示相关问题,至于删除,你这是删除全部文件,用得着先_FileListToArray列出清单再一个个删吗。。。 直接删了文件夹不就行了。
(170万个文件,这么大体量的文件数,不应该手动确认删除吗?而且也更简单直接吧,为啥还写程序去干事)
页: [1]
查看完整版本: 关于删除文件与目录的删除提示!请教【已解决】