vb文件夾復制文件
A. VB怎樣復制文件夾(包括裡面的文件)
給你一個列子
sourcePath 為源文件地址
targetPath 存放文件的地址
'復制文件夾到指定位置
Function CopyDir(ByVal sourcePath As String, ByVal targetPath As String) As Boolean
Try
'檢查目標目錄是否以目錄分隔符結束,不是則添加
If Microsoft.VisualBasic.Right(targetPath, 1) <> "" Then targetPath += System.IO.Path.DirectorySeparatorChar
'判斷目標目錄是否存在,不存在則新建
If Not Directory.Exists(targetPath) Then Directory.CreateDirectory(targetPath)
'得到源目錄的文件列表,該文件裡面是包含文件以及目錄路徑的一個數組
Dim fileList As String() = Directory.GetFileSystemEntries(sourcePath)
'遍歷所有的文件和目錄
For Each filepath As String In fileList
'目錄處理,遞歸
If (Directory.Exists(filepath)) Then
CopyDir(filepath, targetPath + Path.GetFileName(filepath))
Else
'復制文件
File.Copy(filepath, targetPath + Path.GetFileName(filepath), True)
End If
Next
Return True
Catch ex As Exception
Return False
End Try
End Function
希望對你有所幫助·····
B. VB.NET2010 如何復制指定目錄下按類型的所有文件到另一文件夾 復制後再刪除原來的文件
這段代碼的問題是:
首先for each循環在files里查找文件對象,但是f變數聲明為string了,無法讓它獲取對象;
然後file.的變數file沒有任何聲明,也沒有初始化賦值等;
最後,整個for each循環里查找集合files的文件,由於初始化的循環計數器仍然按照最初設定的文件數目向後遞增(文件地址),但是實際文件刪除一部分,後續的文件位置就不能跟循環計數指針匹配了,所以默認為查找不到文件,將會報錯。一般的做法時把復制和刪除分別放在2次循環里,第一次只復制文件,第二次才去刪除。
C. vb 復制文件及文件夾
這么簡單的東西,你就不用花冤枉錢了,我免費給你:
PrivateSubForm_Load()
Me.OLEDropMode=1
EndSub
PrivateSubForm_OLEDragDrop(DataAsDataObject,EffectAsLong,ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
Dimff,fsoAsObject,fnAsInteger,dnAsInteger
Setfso=CreateObject("scripting.filesystemobject")
ForEachffInData.Files
Iffso.fileexists(ff)Then
fso.fileff,"d: mp"&fso.getfilename(ff)&"."&Format(Now,"yyyymmddhhnnss"),True
fn=fn+1
Else
fso.folderff,"d: mp"&fso.getfilename(ff)&"."&Format(Now,"yyyymmddhhnnss"),True
dn=dn+1
EndIf
Next
Setfso=Nothing
MsgBox"共復制"&fn&"個文件,"&dn&"個文件夾"
EndSub
以上代碼沒有用到任何控制項,也不需進行任何設置,直接把代碼復制到窗體的代碼區,編譯為EXE文件即可。運行後把文件或文件夾拖到窗體中即可,可以多個文件同時拖,也可以文件和文件夾混合拖。
文件的保存位置是d: mp,你可以自己改。
時間後綴我是直接加在文件或文件夾的後面的,如果不符要求你可以自己改,讓我改也行。
另外這是VB6的代碼,如果你要的不是這個版本的,那就對不起了。
D. 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好了,關於文件夾復制的方法你可以根據自己的習慣選擇一種來實現你的程序。
E. vb中復制文件
用API函數 SHFileOperation的方法。
F. VB怎麼用file復制文件夾
VB復制文件夾使用CopyFolder方法實現。
CopyFolder 方法
描述
從一個地方遞歸地復制一個文件夾到另一個地方。
語法
object.CopyFolder source, destination[,
overwrite]
PrivateSubCommand1_Click()
CreateObject("scripting.filesystemobject").folder"c:ProgramFiles","D:ProgramFiles"
EndSub