你们回帖过慢,再不回复我可闪先了~				
			
		回复 31# afan 
    网速有点慢. 我是自己加的, 结果还是没有.谢谢你,你如果现在没有时间, 有时间再帮我也行.				
			
		 本帖最后由 afan 于 2010-10-22 23:29 编辑 
$_weizi = 'D:\'
$_filename = '爱什么是什么........'
DirCreate($_weizi & $_filename & './')
$_duan8 = _FileGetShortName($_weizi & $_filename)
MsgBox(0, '', $_duan8)
RunWait(@ComSpec & ' /c rd "' & $_duan8 & '" /s /q', '', 0)
Func _FileGetShortName($FilePath, $Flag = 1)
      $FilePath = StringRegExpReplace($FilePath, '\\+$', '')
      If $Flag <> 1 Then $Flag = 0
      If FileExists($FilePath) And Not StringRegExp($FilePath, '\.+$') Then
                If $Flag = 1 Then Return FileGetShortName($FilePath, 1)
                Return StringRegExpReplace(FileGetShortName($FilePath, 1), '.+\\', '')
      EndIf
      Local $Path, $File
      If StringInStr($FilePath, ':') Then
                $Path = StringRegExpReplace($FilePath, '\\[^\\]+$', '')
                $File = StringRegExpReplace($FilePath, '.+\\', '')
      Else
                $Path = @ScriptDir
                If StringInStr($FilePath, '\') Then $Path &= '\' & StringRegExpReplace($FilePath, '\\[^\\]+$', '')
                $File = StringRegExpReplace($FilePath, '.+\\', '')
      EndIf
      $File = StringRegExpReplace($File, '(\.|\+|\(|\)|\{|\}|\[|\]|\^|\$)', '\\$1')
      Local $str, $ShortName, $tmp
        Do
                $tmp = ''
                While StringLen($tmp) < 7
                        $tmp &= Chr(Random(97, 122, 1))
                WEnd
                $tmp = @TempDir & '\~' & $tmp
        Until Not FileExists($tmp)
      RunWait(@ComSpec & ' /c dir /A /x "' & $Path & '" > "' & $tmp & '"', @SystemDir, 0)
        $str = FileRead($tmp)
        FileDelete($tmp)
        $ShortName = StringRegExpReplace($str, '(?s).+<DIR>\s+?([^\s]+)\s+?' & $File & '.+', '$1')
      If @extended = 0 Then Return SetError(1, 0, 0)
      If $Flag = 1 Then Return FileGetShortName($Path, 1) & '\' & $ShortName
      Return $ShortName
EndFunc   ;==>_FileGetShortName				
			
		回复 33# afan 
    不知道为什么, 昨天都可以, 今天都不可以了.现在你发的, 还是不行.得到的还是0.				
			
		回复 34# chenronting 
    修改了下,再试				
			
		回复 35# afan 
    嗯, 你那个我已经试过了, 也还是0,				
			
		回复 36# chenronting 
    又修改了下,看看返回的字符串是否正常				
			
		回复 37# afan 
    你前面那个我已经试过了,还是0,你可不可以把他们 拆分了再找呢.你这个我完全看不懂, 呵呵 .我得下了.				
			
		返回正常了恭喜 afan				
			
		回复 38# chenronting 
    我都是在33楼修改的,前后修改了2次,每次都提醒了,你都测试了?也就是说33楼的代码应该有3次测试结果。 最后修改的不可能返回0,要么是空,要么就是字符串…
跟帖速度和反馈不行,不利于解决问题。这个问题应该很好解决的,如果你能及时回帖和反馈结果的话~ 不然我修改了一点,等几十分钟反馈,再修改一点,又等几十分钟反馈…				
			
		回复 40# afan 
    不好意思 , 我昨天有事,今天我在家里试了下你33#的代码, 已经可以得到正确答案了。非常感谢。				
			
		正则 看来要好好学学了				
			
		回复 33# afan 
   在WIN7环境下测试返回为0,另外,怎么删除这个目录,DOS的东西忘光了。				
			
		回复afan 
   在WIN7环境下测试返回为0,另外,怎么删除这个目录,DOS的东西忘光了。
newuser 发表于 2010-10-27 15:16 http://www.autoitx.com/images/common/back.gif
    是33#的代码测试的吗?如果是我也没办法,我这没Win7测试~ 第6行就是删除代码				
			
		有意思
这想说明什么
33#的在D盘(隐藏的)测试正常
F盘返回0
·用FileGetShortName函数对特殊名称的不能识别,返回原输入!
.看来还是要回用到DOS命令来获取比较好