Sub 提取指定文件夹内的所有文件名() '含所有子文件夹内的文件
On Error Resume Next
Dim Fso As Object, arrf$(), mf&
Set Fso = CreateObject("Scripting.FileSystemObject")
Call GetFiles(CreateObject("Shell.Application").BrowseForFolder(0, "请选择文件夹", 0, "").Self.Path, Fso, arrf, mf)
Sheet1.[a2].Resize(mf) = Application.Transpose(arrf)
Set Fso = Nothing
End Sub
Private Sub GetFiles(ByVal sPath$, ByRef Fso As Object, ByRef arrf$(), ByRef mf&)
On Error Resume Next
Dim Folder As Object
Dim SubFolder As Object
Dim File As Object
Set Folder = Fso.GetFolder(sPath)
For Each File In Folder.Files
mf = mf + 1
ReDim Preserve arrf(1 To mf)
arrf(mf) = File.Name
Next
For Each SubFolder In Folder.SubFolders
Call GetFiles(SubFolder.Path, Fso, arrf, mf)
Next
Set Folder = Nothing
Set File = Nothing
End Sub
点击运行,然后选择所在ppt的文件夹,就可以了
1、首先新建一个excel文件并双击打开,打开后,按快捷键F12进行另存为,注意另存的格式要选择数毕启用宏的工作簿,2、接着磨毕搭找到左上角的文件按钮,选择选项按钮,
3、在d出的对话框瞎拿中选择信任中心,并选择信任中心设置,接着选择隐私选项,并把保存时删除个人信息的对号去掉,整体设置完成,按快捷键ALT+F11,打开VBA编辑界面,并插入一个模块
4、插入后将如下代码复制到模块中,Sub 删除指定文件夹下的所有文件()
For i% = 1 To Range("A1048576").End(xlUp).Row
Kill Cells(i, 1) &"\*.*”
Next
End Sub
代码如下:import java.io.File
import java.io.FilenameFilter
import java.util.Arrays
public class SortedDirList extends File {
private String[] files
public SortedDirList(String path) {
super(path)
//谈者 进行排序 默认按照字符序列逐位排序 如果想自定义排序规则 请实现comparator
Arrays.sort(files = list())
}
// 返回文件大小
public long size(String filename) {
return new File(filename).length()
}
//返回所有文件名
public String[] list(){
return files
}
// 返回过滤后的文件名数组
public String[] list(String filterStr) {
return list(new FilenameFilter() {
@Override
public boolean accept(File file, String filterStr) {
return file.getName().matches(filterStr)
}
})
}
//在主方法中进行测试
public static void main(String[] args) {
//实例化队形
SortedDirList mSortedDirList=new SortedDirList("D:\\temp")
System.out.println(mSortedDirList.size("你的文件含脊薯名"))
//野绝列出所有文件名
System.out.println(mSortedDirList.list())
//列出经过过滤后的文件名 比如以a字符开头的文件名(用到正则表达式)
System.out.println(Arrays.toString(mSortedDirList.list("^a")))
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)