vb復制文件夾所有文件
① VB.NET 復制文件夾,包括子文件夾 所有文件
用 io.Directory.Exists 判斷文件夾是否存在。
再用 My.Computer.FileSystem.CopyDirectory() 復制。
② 在vb中怎麼實現整個目錄的復制
文件的復制、刪除、修改操作沒有針對整個目錄的,所以要實現,必須一個文件一個文件的來。如果要簡單一些,可以直接調用CMD命令,例如刪除目錄用rd /s/q 盤符:\某個文件夾 ,這樣整個文件夾所有的文件和文件夾都刪除了,VB中就用:
Shell "cmd /c rd /s/q d:\123"
刪除d:\123下的所有文件和文件夾。
③ 用VB寫一個復制文件夾及下面所有文件(包括空的目錄)的工具,求打下指點!
沒明白你的「text1.text」是一個文件夾名還 是一個控制項名
從你的寫法來看應該是一個文件夾名
但是從你的要求來看應該是一個控制項名,可是這里不能用TEXT啊,
你看看好像是叫DRIVER的一個控制項吧,忘了叫什麼名字了,在工具欄里有一個像驅動器一樣的圖標的控制項,另外提醒,選擇好文件或是文件夾後要判斷路徑是否正確,驅動器盤符後面只能跟冒號,不能跟斜杠(當要復制整個驅動器的文件時)
還有,SHELL的串連接可以用+或是&
例 如:"cmd /c x " & a.path & "d:\bb"
a是控制項名
④ vb復制文件夾有幾種方法
首先你說的這幾種方法都可以有相應的實現方法,下面一一列舉:1.vb函數實現復制文件夾。首先要指出,vb有6個基本的關於文件或文件夾操作的函數:(1)建立文件夾的函數MkDir;(2)改變當前文件夾ChDir;(3)刪除文件夾RmDir;(4)刪除文件kill;(5)復制文件FileCopy;(6)文件的改名和移動。但卻沒有直接的文件夾整體復制的基本函數。但用以上這些基本的函數卻可以實現文件夾的任何操作:下面以例子來說明:在D盤根目錄下有一個a文件夾,里邊有很多文件,現在把它復制到"D:\aa"中去,aa是D盤中的一個文件夾.實現過程這樣,(1)先在D:\aa中創建一個文件夾名為a,用函數MkDir;(2)然後把依次把D:\a中的文件復制到D:\aa\a中去。程序實現如下:Private Sub Command1_Click()
Dim fname As String
fname = Dir("d:\a\*.*", 7)
MkDir "d:\aa\a"
Do
If fname = "" Then Exit Do
FileCopy "d:\a\" & fname, "d:\aa\a\" & fname
fname = Dir()
Loop
End Sub2.復制文件夾的API函數:SHFileOperation。他可以很方便的實現文件夾的復制,但要配合一個文件類來實現,還是以例子來說明吧:在D盤根目錄下有一個a文件夾,里邊有很多文件,現在把它復制到"D:\bb"中去,程序實現如下: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 'api函數SHFileOperation 的聲明
'wFunc 常數
'FO_COPY 把 pFrom 文件拷貝到 pTo。
Const FO_COPY = &H2'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'以上皆為SHFileOperation 需要的變數的聲明,固定聲明格式直接拿來使用
Private Sub Command2_Click()
Dim SHFileOp As SHFILEOPSTRUCT
SHFileOp.wFunc = FO_COPY
SHFileOp.pFrom = "d:\a"
SHFileOp.pTo = "d:\bb"
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMMKDIR
Call SHFileOperation(SHFileOp)
End Sub3.FSO方法實現文件夾的復制,它的使用與FileCopy類似,但還不一樣,它只能把一個文件夾里邊的文件完全復制到目標文件夾中,但是不能連同此文件夾一塊復制進去,因此用FSO實現復制也需要兩步,(1)先在目標文件夾中創建一個與復制的文件夾同名的文件夾,然後把文件復制進去。現用例子來說明:在D盤根目錄下有一個a文件夾,里邊有很多文件,現在把它復制到"D:\cc"中去,程序實現如下:"工程"--"引用"--"Microsoft Scripting Runtime"Private Sub Command3_Click()
Dim fso As New FileSystemObject
Dim fldr As Folder
MkDir "D:/cc/a"
fso.CopyFolder "D:/a", "D:/cc/a", True
End Sub好了三種實現方法都能做到復制文件夾,另外再給你提供一種方法,就是用dos命令,利用vb里邊的函數shell來調用cmd.exe執行dos命令,有時候shell也是很不錯的選擇。具體例子如下:Private Sub Command4_Click()Shell "cmd.exe /c x " + Chr(34) + "D:\dd D:\a /q /e" + Chr(34)
end sub好了,關於文件夾復制的方法你可以根據自己的習慣選擇一種來實現你的程序。
⑤ VB.NET2010 如何復制指定目錄下按類型的所有文件到另一文件夾 復制後再刪除原來的文件
這段代碼的問題是:
首先for each循環在files里查找文件對象,但是f變數聲明為string了,無法讓它獲取對象;
然後file.的變數file沒有任何聲明,也沒有初始化賦值等;
最後,整個for each循環里查找集合files的文件,由於初始化的循環計數器仍然按照最初設定的文件數目向後遞增(文件地址),但是實際文件刪除一部分,後續的文件位置就不能跟循環計數指針匹配了,所以默認為查找不到文件,將會報錯。一般的做法時把復制和刪除分別放在2次循環里,第一次只復制文件,第二次才去刪除。
⑥ 請問VB中什麼函數可以復制文件夾中的所有文件,包括子文件夾-編程
用CopyFolder 方法
語法
object.CopyFolder source, destination[, overwrite]
其中,object只能是FileSystemObject對象(見後面示例).
CopyFolder 方法語法有如下幾部分:
Object 必需的。始終為一個 FileSystemObject 的名字。
source 必需的。指明一個或多個被復制文件夾的字元串文件夾說明,可以包括通配符。
destination 必需的。指明 source 中被復制文件夾和子文件夾的接受端的字元串,不允許有通配符。
overwrite 選項的。Boolean 值,它表示已存在的文件夾是否被覆蓋。如果為 True,文件被覆蓋。如果為 False,文件不被覆蓋。預設值為 True。
說明
通配符僅可用於 source 參數的最後一個路徑部件。例如你可以在下面情況使用它:
FileSystemObject.CopyFolder "c:\mydocuments\letters\*", "c:\tempfolder\"
但不能在下面情況使用它:
FileSystemObject.CopyFolder "c:\mydocuments\*\*", "c:\tempfolder\"
如果 source 包含通配符或 destination 以路徑分隔符(\)為結尾,則認為 destination 是一個已存在的文件夾,在其中復制相匹配的文件夾和子文件夾。否則認為 destination 是一個要創建的文件夾的名字。不論何種情況,當復制一個文件夾時,可能發生四種事件。
如果 destination 不存在,source 文件夾和它所有的內容得到復制。這是通常的情況。
如果 destination 是一個已存在的文件,則發生一個錯誤。
如果 destination 是一個目錄,它將嘗試復制文件夾和它所有的內容。如果一個包含在 source 的文件已在 destination 中存在,當 overwrite 為 False 時發生一個錯誤,否則它將嘗試覆蓋這個文件。
如果 destination 是一個只讀目錄,當嘗試去復制一個已存在的只讀文件到此目錄並且 overwrite為 False 時,則發生一個錯誤。
如果 source 使用的通配符不能和任何文件夾匹配,也發生一個錯誤。
CopyFolder 方法停止在它遇到的第一個錯誤上。不要嘗試回卷錯誤發生前所做的任何改變。
示例:
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFolder "C:\Downloads\", "D:\"
FileSystemObject對象除了CopyFolder方法,還有其它很多,如BuildPath、CopyFile、CreatFolder等等,詳見msdn幫助
⑦ vb中復制文件
用API函數 SHFileOperation的方法。
⑧ vb中如何將一個文件的所有東西復制到另一個文件夾
調用外部的dos
的命令,可以實現的要求...
shell
"cmd
/c
c:\1.doc
d:\001\"
用vb的文件復制,需要指定目標文件的姓名.
不過這樣不符合你的要求.
Dim
result,
Sourcefile,
Destinationfile
As
String
result
=
MsgBox(
"確定要復制嗎?
",
vbYesNo,
"詢問
")
If
result
=
vbYes
Then
Sourcefile
=
"c:\1.doc"
Destinationfile
=
"d:\001\1.doc"
FileCopy
Sourcefile,
Destinationfile
End
If