[已解决]选择多个文件如何显示文件路径的问题
本帖最后由 xlcwxl 于 2010-11-26 20:32 编辑FileOpenDialog多选出来的效果:
D:\downloads\2010
DSC00302.JPG
DSC01008.JPG
DSC01039.JPG
有时候选择的文件是快捷方式又会是这样的结果:
C:\Documents and Settings\Administrator\桌面
C:\Program Files\Tencent\QQ\Bin\QQ.exe
test3.au3
test.au3
我想要的效果:
D:\downloads\2010\DSC00302.JPG
D:\downloads\2010DSC01008.JPG
D:\downloads\2010DSC01039.JPG
C:\Documents and Settings\Administrator\桌面\test3.au3
C:\Documents and Settings\Administrator\桌面\test3.au3
C:\Program Files\Tencent\QQ\Bin\QQ.exe\test.au3
谢谢! 貌似简单的用字符串相连处理一下就可以了啊!
如:$a=c:\windows
$b=setup.exe
那么:
$c=$a&'\'&$b 方法一#include <File.au3>
$a = 2
$filename = _TempFile(@TempDir, "~test", ".txt", 5)
$file = FileOpenDialog("test", @ScriptDir, "所有文件(*.*)", 7)
Local $temp = ""
If Not @error Then
$file = StringRegExpReplace($file, "\|", @CRLF)
FileWrite($filename, $file)
$fileopen = FileOpen($filename, 0)
If Not @error Then
While 1
If StringInStr(FileReadLine($fileopen, $a), "\") Then
$temp &= FileReadLine($fileopen, $a) & @CRLF
Else
If FileReadLine($fileopen, $a) <> "" Then
$temp &= FileReadLine($fileopen, 1) & "\" & FileReadLine($fileopen, $a) & @CRLF
EndIf
EndIf
$a += 1
If @error = -1 Then ExitLoop
WEnd
EndIf
MsgBox(0, 0, $temp)
FileClose($fileopen)
FileDelete($filename)
EndIf
方法2 (暂时没想到控制数组的方法)#include <Array.au3>
Local $temp3
$file=FileOpenDialog("test",@ScriptDir,"所有文件(*.*)",7)
If Not @error Then
$file=StringRegExpReplace($file,"\|",@CRLF)
$temp1=StringRegExp($file,"(?m)^([^\v\\]+)\v*$",3)
$temp2=StringRegExp($file,".*\\.*",3)
For $i=1 To UBound($temp2)-1
$temp3[$i-1]=$temp2[$i]
Next
For $y=0 To UBound($temp1)-1
$temp3[$y]=$temp2&"\"&$temp1[$y]
Next
endif
_ArrayDisplay($temp3) 回复 3# shenrenba
我想到的是第一种方法:
读取行,检测每行是否包含:\(路径符号),若有则直接读取,若没有则在每行之前加上第一行的路径 谢谢!
shenrenba=(神人吧)? 回复 5# xlcwxl
不是原来和朋友玩传奇的时候起的用户名 整个网吧玩的名字都是shenren 开头 方便大家记忆(于网吧名字有关,当时我的就是shenrenba)用习惯了 所以我大部分账号都是shenrenba
页:
[1]