天堂泪吻泪 发表于 2010-2-4 20:53:46

字符路径已经写入数组,但当用FileExists检查是否存在时,却报错??

本帖最后由 天堂泪吻泪 于 2010-2-5 00:40 编辑

想写个返回空盘符的UDF,代码如下,如果把IF的那两行注释后就可以正常运行,但正常运行后,却发现多了一个?????
试过用两层FOR都不行,请大家帮下忙吧!:face (30):

见二楼和四楼都有例子!!!!#include <array.au3>
_GetDriverEmptyLetter()
Func _GetDriverEmptyLetter()
        Local $AllLetter
        Local $i
        $AllLetter = 0
        For $i = 1 To 26               
                If Not FileExists(Chr(96 + $i) & ":\") Then
                        $AllLetter[$i] = Chr(96 + $i) & ":\"
                        $AllLetter += 1
                ReDim $AllLetter
                EndIf
        Next       
        _ArrayDisplay($AllLetter)
EndFunc   ;==>_GetDriverEmptyLetter

顽固不化 发表于 2010-2-4 23:25:10

#include <array.au3>
_GetDriverEmptyLetter()
Func _GetDriverEmptyLetter()
        Local $AllLetter
        Local $i, $n = 1
        $AllLetter = 0
        For $i = 1 To 26
                If Not FileExists(Chr(96 + $i) & ":\") Then
                        $n += 1
                        ReDim $AllLetter[$n]
                        $AllLetter[$n - 1] = Chr(96 + $i) & ":\"
                EndIf
        Next
        $AllLetter = $n-1
        _ArrayDisplay($AllLetter)
EndFunc   ;==>_GetDriverEmptyLetter按你的代码改的,似乎光驱没被正确辨别。

天堂泪吻泪 发表于 2010-2-4 23:53:54

回复 2# 顽固不化


    先谢谢了!:face (35):
帮助里是这样写的,

注意/说明

如果指定路径参数为未插入磁盘的软驱则 FileExists 的返回值为0.

原来不止是软驱,光驱也是一样!在下再去改一改!
尝试用DeviceGetDevice("ALL")做二次循环看行不行??

afan 发表于 2010-2-5 00:25:40

回复 3# 天堂泪吻泪


    这样行不?#include <array.au3>

$a = _GetDriverEmptyLetter()
_ArrayDisplay($a)

Func _GetDriverEmptyLetter()
        Local $tmp, $i
        For $i = 99 To 121
                $tmp &= Chr($i) & ':|'
        Next
        $tmp &= 'z:'
        Local $Drive = DriveGetDrive('all')
        For $i = 1 To $Drive
                $tmp = StringRegExpReplace($tmp, $Drive[$i] & '\|', '')
        Next
        Return StringSplit($tmp, '|')
EndFunc   ;==>_GetDriverEmptyLetter

天堂泪吻泪 发表于 2010-2-5 00:35:36

本帖最后由 天堂泪吻泪 于 2010-2-5 00:50 编辑

回复 4# afan


    正则,晕!!!像http://www.autoitx.com/thread-12844-1-1.html做二层嵌套不可以实现吗??
因为我正在发贴子,所以还没看到你的回复就发了!!!!这样也行!!!!:face (35):


这的原理就是先用CHR把数字转成字母,用循环把"a:|"到"y:|"分别负值到$tmp变量中,最后才把"z:"负值到$tmp是因为这样做的话,就不会多一个"|"方便用"|"来分数组,StringSplit是个不错的涵数!正则那里还得慢慢研究!!!!
页: [1]
查看完整版本: 字符路径已经写入数组,但当用FileExists检查是否存在时,却报错??