papapa314 发表于 2011-1-11 17:05:51

分享一个批量获得文件路径的源码

本帖最后由 papapa314 于 2011-1-20 23:50 编辑

首先感谢3mile和tryhi的帮助,解决了一个字符串替换的问题。学au3快一个月了,从论坛上学到很多东西,现在把正在写的一个程序中关于批量得到文件路径的源码分享出来。写这个源码没有参考论坛的资料,完全是自己想的,如果有重复或者写的不好的地方,还希望各位老大提出意见。#include <file.au3>
#include <array.au3>
                        
$file=_TempFile("C:\temp\", "tst2_", ".txt", 9);创建一个临时文件
$filenamestring=FileOpenDialog("浏览文件","","(*.txt;*.pdf;*.doc;*.docx;*.ppt;*.pptx;*.xls;*.xlsx)",4);得到文件名的字符串
If Not @error Then
      $filelist=StringRegExpReplace($filenamestring,"\|",@CRLF);把字符串中的|替换为换行符,并存入$filelist中
      FileWrite($file,$filelist);写入一个临时创建的txt文件中
      $num=_filecountlines($file);计算行数,如果选中的文件等于1,则$num=1,如果选中的文件数大于1,则$num=文件数+1
EndIf
If $num=1 Then
      $path0=FileReadLine($file)
      MsgBox(0,"",$path0)
EndIf
If $num>=3 Then;$num不会等于2,所以跳过2
      Dim $path[$num-1];定义一个用来存储文件路径的数组
      Dim $i=0
      While $i< $num-1
            $path[$i]=FileReadLine($file,1)&FileReadLine($file,$i+2);FileReadLine($file,1)是路径的头,FileReadLine($file,$i+2)是文件名
            $i=$i+1
    WEnd
      _ArrayDisplay($path)
EndIf
                        
      FileDelete($file);把刚才创建的文本文件删除,不然会产生很多垃圾。

papapa314 发表于 2011-1-11 17:18:10

少了一个"\",呵呵
$path[$i]=FileReadLine($file,1)&"\"&FileReadLine($file,$i+2);FileReadLine($file,1)是路径的头,FileReadLine($file,$i+2)是文件名

lqg_7874 发表于 2011-1-11 21:30:38

太好了,对于初学者是一个不错的例子,还有人补充,省的调试了{:face (356):}

hello_xiaopeng 发表于 2011-7-24 07:55:10

初学者学习了

881966 发表于 2018-11-13 14:50:04

学习学习,谢谢分享

anice00 发表于 2019-1-20 16:26:23

学习一下。。 感觉以后能用得上

zmdzhxj 发表于 2019-6-23 15:57:36

初学者,学习学习
页: [1]
查看完整版本: 分享一个批量获得文件路径的源码