那位大侠有空帮测试一个函数!
Public Function M_Get文件列表(文件夹) As Object
Set M_Get文件列表 = CreateObject("Scripting.Dictionary")
Set 列表 = M_Get文件列表
Set fs = CreateObject("Scripting.FileSystemObject")
If Not fs.FolderExists(文件夹) Then Exit Function
Call M_Find文件(文件夹, 列表, fs)
End Function
Public Function M_Find文件(文件夹, 列表, fs)
Set f = fs.GetFolder(文件夹)
Set fc = f.SubFolders
For Each f1 In fc
Set 列表(f1.Name) = CreateObject("Scripting.Dictionary") '
SubFd = 文件夹 & "\" & f1.Name '
Call M_Find文件(SubFd, 列表(f1.Name), fs)
上层目录 = Replace(文件夹, "'", "''")
文件名 = Replace(f1.Name, "'", "''")
完整名 = Replace(SubFd, "'", "''")
添加串 = "insert into 文件表 (上层目录,属性,文件名,完整名) values ('" & 上层目录 & "','目录'," & "'" & 文件名 & "','" & 完整名 & "')"
CurrentProject.Connection.Execute 添加串
Next
Set f = fs.GetFolder(文件夹)
Set fc = f.Files
For Each f1 In fc
列表(f1.Name) = 文件夹 & "\" & f1.Name
上层目录 = Replace(文件夹, "'", "''")
文件名 = Replace(f1.Name, "'", "''")
完整名 = Replace(列表(f1.Name), "'", "''")
添加串 = "insert into 文件表 (上层目录,属性,文件名,完整名) values ('" & 上层目录 & "','文件'," & "'" & 文件名 & "','" & 完整名 & "')"
CurrentProject.Connection.Execute 添加串 '注意 有一些数据通不过!!!
Next
End Function
用access中vba:
1.建一个表:文件表(id:自增字段;上层目录;属性;文件名;完整名)共五个字段(除了id其余为文本字段)
调用方法:Set lb = M_Get文件列表("C:\Documents and Settings")
(如果文件很多,大概要执行几分钟)
在我的电脑上偶尔有一些数据通不过(含日文数据),如果改成:
上层目录 = Replace(StrConv(StrConv(文件夹, vbFromUnicode), vbUnicode), StrConv("'", vbFromUnicode), "''")
这种形式,含有“'”字符的文件通不过,怎么修改也不能让这两种文件同时通过,大侠帮分析下什么原因?
[解决办法]
这是什么语言?怎么会有这么多汉字?
[解决办法]