通过EXCEL提取指定路径下的文件及文件夹-kingsoft是什么文件夹

今天的Topic是关于文件和文件夹管理

以某个项目的资料文件夹为例:共计5860个文件,1873的文件夹,占用8.59G空间

通过EXCEL提取指定路径下的文件及文件夹

面对这样一个巨大的数据量,如果作为负责人,对本项目的其它参与人员说明各种文件的存放规则是一件困难的事情,更不用说随着项目的进展,这个项目资料还将每天不断地扩充和更新。

想到的还是通过Excel表格进行管理,如果能够实现每天下班了点一个按钮,就能把整个项目文件夹里面的目录和文件自动更新一下就好了,任何需要传递的项目文件,可以通过对文夹的特殊命名,提取其发送方,日期等关键参数,获得整个项目的文件列表,基于列表就可以做很多工作了。

例如,今天收到了三个机组返回的供货商资料,负责人收到资料后进行文件夹的标准化命名,在更新后获得的表格中一一指定专人对供货商资料进行确认,同时指定截止时间,同时通过局域网共享功能将文件本身也在表格中设计好链接,设计人在第二天一早打开表格的话就知道自己手头有什么任务,什么时候完成,需要阅读文件的话直接点击打开即可。

为此,开发了一个小工具,可以任意提取指定路径下的文件名,并且可以选择只提取文件,只提取目录或者同时提取文件和目录,也可以选择是否包含子文件夹,具体使用方法如下:

· 打开《A03_.2017.12.21 小工具系列之01-提取指定路径下的文件及文件夹》

· 根据需要勾选按钮右侧的三个选项

通过EXCEL提取指定路径下的文件及文件夹

· 点击按钮,跳出窗口,在窗口中选择定位到指定的目录

通过EXCEL提取指定路径下的文件及文件夹

· 确定后即可在表格的A列3行之后得到想要的结果

以下是具体实现过程,有兴趣的可以分享学习以下,没有兴趣的可直接到文末下载成品使用。

· 插入三个复选框,分别对应《文件》《文件夹》《包含子目录》,控件的数据链接到B1,C1,D1单元格

· 编写程序,读取上述单元格内容

Dim myi, myj, myk As Boolean

myi = [b1]

myj = [c1]

myk = [d1]

With Application.FileDialog(msoFileDialogFolderPicker)

If .Show Then

myPAth = .SelectedItems(1)

Else

Exit Sub

End If

End With

If Right(myPAth, 1) <> "" Then

myPAth = myPAth & ""

End If

With CreateObject("Wscript.Shell")

If myk = True Then

If myi = True And myj = True Then

cmdStr = "/a /b /o:n /s "

ElseIf myi = True And myj = False Then

cmdStr = "/a:-d /b /o:n /s "

Else

cmdStr = "/a:d /b /o:n /s "

End If

Else

If myi = True And myj = True Then

cmdStr = "/a /b /o:n "

ElseIf myi = True And myj = False Then

cmdStr = "/a:-d /b /o:n "

Else

cmdStr = "/a:d /b /o:n "

End If

End If

ar = Split(.exec("cmd /c dir " & cmdStr & Chr(34) & myPAth & Chr(34)).StdOut.ReadAll, vbCrLf)

End With

Range("A3").Select

Range(Selection, Selection.End(xlDown)).Select

Selection.ClearContents

For i = 0 To UBound(ar)

ar(i) = Replace(ar(i), myPAth & "\", "")

Next

If UBound(ar) > -1 Then

[a3].Resize(1 + UBound(ar)) = WorksheetFunction.Transpose(ar)

End If

&middot; 插入一个按钮控件,并关联到程序,点击按钮即可完成相应操作。

通过EXCEL提取指定路径下的文件及文件夹

最后,下载链接如下:

http://wangpan.snec.com:8787/l/eHE9Zm

推荐阅读