例如,把文件"E:\新建文件夾\a.txt"復制到剪貼板
按需策劃可以根據自己的需求進行定制,做網站、成都網站建設構思過程中功能建設理應排到主要部位公司做網站、成都網站建設的運用實際效果公司網站制作網站建立與制做的實際意義
CreateObject("Shell.Application").NameSpace("E:\新建文件夾").ParseName("a.txt").InvokeVerb?"復制(C)"
用 io.Directory.Exists 判斷文件夾是否存在。
再用 My.Computer.FileSystem.CopyDirectory() 復制。
用API函數 SHFileOperation的方法。
以下是使用SHFileOperation刪除復制移動文件的例子,可以復制文件夾
Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As String '只有在 FOF_SIMPLEPROGRESS 時用
End Type
Private Declare Function SHFileOperation Lib _
"shell32.dll" Alias "SHFileOperationA" (lpFileOp _
As SHFILEOPSTRUCT) As Long
'wFunc 常數
'FO_COPY 把 pFrom 文件拷貝到 pTo。
Const FO_COPY = H2
'FO_DELETE 刪除 pFrom 中的文件(pTo 忽略)。
Const FO_DELETE = H3
'FO_MOVE 把 pFrom 文件移動到 pTo。
Const FO_MOVE = H1
'fFlag 常數
'FOF_ALLOWUNDO 允許 Undo 。
Const FOF_ALLOWUNDO = H40
'FOF_NOCONFIRMATION 不顯示系統(tǒng)確認對話框。
Const FOF_NOCONFIRMATION = H10
'FOF_NOCONFIRMMKDIR 不提示是否新建目錄。
Const FOF_NOCONFIRMMKDIR = H200
'FOF_SILENT 不顯示進度對話框
Const FOF_SILENT = H4
Private Sub Command1_Click()
'例子:
Dim SHFileOp As SHFILEOPSTRUCT
' 拷貝
SHFileOp.wFunc = FO_COPY
SHFileOp.pFrom = "d:\MASM611"
SHFileOp.pTo = "c:\MASM611"
SHFileOp.fFlags = FOF_NOCONFIRMMKDIR
Call SHFileOperation(SHFileOp)
End Sub
或者用命令行
shell "cmd.exe /c xcopy "+chr(34)+"C:\新建文件夾 c:\aa /q /e" +chr(34)
這段代碼的問題是:
首先for each循環(huán)在files里查找文件對象,但是f變量聲明為string了,無法讓它獲取對象;
然后file.copy的變量file沒有任何聲明,也沒有初始化賦值等;
最后,整個for each循環(huán)里查找集合files的文件,由于初始化的循環(huán)計數器仍然按照最初設定的文件數目向后遞增(文件地址),但是實際文件刪除一部分,后續(xù)的文件位置就不能跟循環(huán)計數指針匹配了,所以默認為查找不到文件,將會報錯。一般的做法時把復制和刪除分別放在2次循環(huán)里,第一次只復制文件,第二次才去刪除。