问题大概如下:
我的D盘下有一个文件夹AAA,AAA文件夹下有一个文件1.txt我希望复制D:\AAA\1.txt到C:\AAA\1.txt
前提是我C盘下无文件夹AAA,我也不希望通过CopyFolder方式把整个文件夹下的文件全复制过去
也不想手动去建立这个文件夹有没有办法直接复制文件,如果目标地址路径不对则自动生成相关的文件夹?
我的D盘下有一个文件夹AAA,AAA文件夹下有一个文件1.txt我希望复制D:\AAA\1.txt到C:\AAA\1.txt
前提是我C盘下无文件夹AAA,我也不希望通过CopyFolder方式把整个文件夹下的文件全复制过去
也不想手动去建立这个文件夹有没有办法直接复制文件,如果目标地址路径不对则自动生成相关的文件夹?
Private SUb Command1_Click()
On Error Goto ErrL
Err.clear
Dim fso As New FileSystemObject
SourceStr= "D:\AAA\1.txt"
DestStr="C:\AAA\BBB\CCC\1.txt"
fso.CopyFile SourceStr, DestStr
eixt sub
ErrL: '错误则表示目录不存在
Dim a() as String,str1 as String
a=split(DestStr,"\")
str1=a(0) & "\"
For i=1 to Ubound(a)-1
str1= str1 & a(i)
fso.CreateFolder(str1)
Next
'以上循环完成了多目录的层叠创建
fso.CopyFile(Sourcestr,DestStr)
End Sub楼主去试试
Dim fso As New FileSystemObject
Dim FloderName As String
Dim src As String
Dim de As String
FloderName = "c:\aaa"
src = "d:\aaa\1.txt"
If Not fso.FileExists(FloderName) Then
fso.CreateFolder (FloderName)
End If
de = FloderName
fso.CopyFile src, de, True
End Sub
Dim SHFileOp As SHFILEOPSTRUCT
SHFileOp.wFunc = FO_COPY
SHFileOp.pFrom = "c:\temp\*.*"
SHFileOp.pTo = "c:\temp2\*.*"
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMMKDIR
Call SHFileOperation(SHFileOp)
在以上叙述中请注意一件事情:FOF_NOCONFIRMMKDIR 表示不显示交谈窗询问使用者「是否建立目录」,如果取消此一设定值, 而当 SHFileOp.pTo 所指定的目录不存在时, 则 Windows 会询问使用者是否建立目录。(SHFileOp.pTo = "c:\temp2\*.*" 写成 SHFileOp.pTo = "c:\temp2 亦可)
如果没有就createfolder
再循环copy