VB複製文件夾的方法(非FSO)

http://www.webuc.net/ddf3/archive/2005/08/25/6142.aspx

 

 

不用FSO的複製文件夾得方法?

用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 不顯示系統確認對話框。
Const FOF_NOCONFIRMATION = &H10
'FOF_NOCONFIRMMKDIR 不提示是否新建目錄。
Const FOF_NOCONFIRMMKDIR = &H200
'FOF_SILENT 不顯示進度對話框
Const FOF_SILENT = &H4

'例子:
Dim SHFileOp As SHFILEOPSTRUCT
' 刪除
SHFileOp.wFunc = FO_DELETE
SHFileOp.pFrom = "c:/config.old" + Chr(0)
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
Call SHFileOperation(SHFileOp)
' 刪除多個文件
SHFileOp.wFunc = FO_DELETE
SHFileOp.pFrom = "c:/config.old" +Chr(0) + "c:/autoexec.old"+Chr(0)
SHFileOp.fFlags = FOF_ALLOWUNDO
Call SHFileOperation(SHFileOp)
' 拷貝
SHFileOp.wFunc = FO_COPY
SHFileOp.pFrom = "c:/t"
SHFileOp.pTo = "d:/"
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMMKDIR
Call SHFileOperation(SHFileOp)
' 移動
SHFileOp.wFunc = FO_MOVE
SHFileOp.pFrom = "c:/config.old" + Chr(0)
SHFileOp.pTo = "d:/t"
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
Call SHFileOperation(SHFileOp)


或者
shell "cmd.exe /c xcopy "+chr(34)+"C:/新建文件夾 c:/aa /q /e" +chr(34)

發佈了10 篇原創文章 · 獲贊 6 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章