找回密码
 加入
搜索
查看: 5249|回复: 6

[原创] 分享一个批量获得文件路径的源码

  [复制链接]
发表于 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);把刚才创建的文本文件删除,不然会产生很多垃圾。
 楼主| 发表于 2011-1-11 17:18:10 | 显示全部楼层
少了一个"\",呵呵
$path[$i]=FileReadLine($file,1)&"\"&FileReadLine($file,$i+2);FileReadLine($file,1)是路径的头,FileReadLine($file,$i+2)是文件名
发表于 2011-1-11 21:30:38 | 显示全部楼层
太好了,对于初学者是一个不错的例子,还有人补充,省的调试了
发表于 2011-7-24 07:55:10 | 显示全部楼层
初学者  学习了
发表于 2018-11-13 14:50:04 | 显示全部楼层
学习学习,谢谢分享
发表于 2019-1-20 16:26:23 | 显示全部楼层
学习一下。。 感觉以后能用得上
发表于 2019-6-23 15:57:36 | 显示全部楼层
初学者,学习学习
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-4 01:14 , Processed in 0.077400 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表