|
各位老师:
长文档名文档 文件夹中有5个文档,我想将长文档名文档 文件夹中有5个文档复制到 长文档名文档2 文件夹中。代码如下:
Sub fzwjA()
'获取桌面路径
zmpath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
'源文件夹路径
opath = zmpath & "文件复制测试\长文档名文档\"
'新文件夹路径
ppath = zmpath & "文件复制测试\长文档名文档2\"
'If Dir(ppath, vbDirectory) <> "" Then
' RmDir ppath
'End If
'MkDir (ppath)
Dim reg As Object
'创建正则对象
Set reg = CreateObject("VBScript.Regexp")
'汉字
reg.Pattern = "[\u4e00-\u9fa5]"
reg.Global = True
reg.IgnoreCase = True
'创建了一个FSO对象
Set fso = CreateObject("Scripting.FileSystemObject")
'错误处理
On Error Resume Next
'遍历文件夹获取文件
fname = Dir(opath)
If Err.Number = 0 Then
'文件夹逐个文档循环处理
Do While Len(fname) <> 0
Debug.Print Left(fname, 5) & " " & Len(fname)
Set matches = reg.Execute(fname)
CountZh = matches.Count
zfzs = Len(fname) - CountZh + CountZh * 2
Debug.Print Left(fname, 5) & " " & zfzs
'新文档名
nfname = fname & Format(Date, "yyyymmdd")
'新文档后缀名
hzstr = "." & Split(opath & fname, ".")(1)
'复制文档
fso.Copyfile opath & fname, ppath & nfname & hzstr, overwritefiles:=True
'清空源文档变量
fname = ""
On Error Resume Next
'获取下一个文档
fname = Dir()
Loop
End If
End Sub
问题:
1、文件夹中第3个文档名称总字符数超260,dir函数获取不到此文档
2、当文件夹中遇到一个错误文档时跳出do while 循环,未处理文件夹中剩余的文档
请老师帮看看,指点一下,谢谢
|
|