
使用excel提取文件夹中的所有文件名称的方法主要有以下两个:
1、在那个文件夹内新建一个TXT文件(如wenjiantxt),用记事本单开输入
dir> 1txt
保存退出
将刚才的TXT(wenjiantxt)更名为bat文件(wenjianbat)
双击wenjianbat文件运行一次,在文件夹内多出一个1txt文件
打开1txt文件,将其中的内容粘贴到Excel中,数据——分列处理就可以得到你要的文件名列表了!
2、VBA(2003版)
在那个文件夹下新建Excel文件,打开新建的Excel文件,右击工作表标签(如Sheet1),查看代码——在代码编辑器中输入以下代码
Sub Test()
Dim i As Integer
Dim strPath As String
strPath = ThisWorkbookPath
With ApplicationFileSearch
LookIn = strPath
SearchSubFolders = True
Filename = ""
If Execute > 0 Then
For i = 1 To FoundFilesCount
Range("A" & i) = FoundFiles(i)
Next i
End If
End With
End Sub
回到Excel表格中,工具——宏——宏——选择Sheet1Test——执行
方法一简单的 *** 作就可以,方法二需要对程序有一定的了解,方法二通用性比较强,需要的时候执行一下就可以,更快捷。
假设原文件夹为g:\test,目标文件夹为g:\bat,本批处理
将会把g:\test文件夹下(包括子目录)所有同名不同后缀的文件拷贝到g:\bat目录下
且按照不同名字建立相应的文件夹,同名文件就放在对应名称的文件夹内
代码如下:
set
srcfolder=g:\test
set
desfolder=g:\bat
for
/f
"delims="
%%a
in
('dir
"%srcfolder%\"
/a-d
/b
/s')
do
(
md
"%desfolder%\%%~na"
2>nul
xcopy
/y
"%%a"
"%desfolder%\%%~na"
2>nul
)
解决方案 :使用递归算法进行遍历获取,什么是递归,简而言之就是自己调用自己的一种方法,关于递归算法自行百度。
本例通过递归方法来实现这一需求,输出所有文件夹路径,以及所有Excel文件名。
给定测试目录: C:\Users\admin\Desktop\递归查找,前提是我们不知道该指定文件夹下有多少个子文件夹以及子文件。
测试目录说明:
该目录下创建了需要测试的两级文件目录、以及按文件夹名创建的txt xlsx文件。
首先需要明确目的:根据文件目录、文件夹目录,输出所有文件夹名以及所有Excel文件名,因为无法获知目录深度,所以通过父文件夹层层遍历。
然后进行递归逻辑判断:
找整个递归的终止条件:递归应该在什么时候结束?
找返回值:应该给上一级返回什么信息?
本级递归应该做什么:在这一级递归中,应该完成什么任务?
递归逻辑思考:
1递归应该在什么时候终止?
应该在所有文件夹遍历后无子文件夹存在时终止。
2返回值:
子目录下文件及文件夹的长度(个数)
3本级递归应该完成的任务:
①判断目录下有无文件:如果有,进行遍历文件目录,判断文件扩展名,符合条件的打印输出。
②判断目录下有无文件夹,如果有,遍历文件夹目录,打印输出文件夹名。
定义参数Path_Find,初始目录为:C:\Users\admin\Desktop\递归查找
Step1: 判断文件目录长度
if(length>0)不为空,遍历文件目录,判断文件扩展名,打印输出满足条件的文件名。循环结束后,判断文件夹目录;
else为空,判断文件夹目录。
Step2 :判断文件夹目录长度
If(length>0),不为空,遍历文件夹目录,打印子文件夹名。再进行调用自身,继续判断文件目录,不断遍历循环。
Else,为空,不 *** 作。
其中Invoke Workflow File调用自己时,参数Path_Find为子文件夹路径
补充说明:NET有内置搜索方法,方法见微软官方文档 >
以上就是关于如何从文件夹中提取所有文件名全部的内容,包括:如何从文件夹中提取所有文件名、如何获取一个文件夹里面所有文件的文件名,不要后缀名、【Uipath】如何获取指定文件夹下所有子文件夹和所有Excel表的文件名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)