vb復制指定文件夾
Ⅰ VB將程序所在的文件夾里的文件復制到指定文件夾里
比如把當前程序所在目錄的a.txt復制到d盤123目錄下名為a.txt,則可用如下語句
FileCopy
App.Path
&
"/a.txt"
"d:/123/a.txt"
FileCopy
"源文件"
"目標路徑和文件名"
Ⅱ VB中怎麼將一個文件復制到指定文件夾
Dim fs ' 先聲明一個變體型
Set fs = CreateObject("Scripting.FileSystemObject") '創建文件系統對象fs
fs.file "D:\to.txt", "E:\" '使用該對象的file方法將源文件復制到目標文件
Ⅲ 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 復制文件及文件夾
這么簡單的東西,你就不用花冤枉錢了,我免費給你:
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的代碼,如果你要的不是這個版本的,那就對不起了。
Ⅳ VB如何把選擇的文件復制到指定文件夾
假設你要復制到的文件夾是c:\file
FileCopy
commondialog1.filename
"c:\file\"
就可以了。
Ⅵ VB怎樣將文件夾復制到指定位置,注意是文件夾。
VB復制文件夾使用CopyFolder方法實現。
CopyFolder 方法
描述
從一個地方遞歸地復制一個文件夾到另一個地方。
語法
object.CopyFolder source, destination[,
overwrite]
實現代碼中的source路徑不能有錯,否則VB報錯。
將C盤下的Program Flles目錄夾復制到D盤Program Flles目錄夾的實際代碼如下:
Private Sub Command1_Click()
CreateObject("scripting.filesystemobject").folder "c:\Program Files", "D:\Program Files"
End Sub
Ⅶ vb 拷貝指定文件到選定目錄
private
sub
command1_click()
on
error
resume
next
dim
s1
as
string
'原路徑
dim
s2
as
string
'目的路徑
s1
=
"c:\1.exe"
'輸入要復制的文件路徑,這個你可以修改
s2
=
"d:\1.exe"
'同上,目的路徑
file
s1,s2
'復制文件
end
sub
Ⅷ VB.NET2010 如何復制指定目錄下按類型的所有文件到另一文件夾 復制後再刪除原來的文件
這段代碼的問題是:
首先for each循環在files里查找文件對象,但是f變數聲明為string了,無法讓它獲取對象;
然後file.的變數file沒有任何聲明,也沒有初始化賦值等;
最後,整個for each循環里查找集合files的文件,由於初始化的循環計數器仍然按照最初設定的文件數目向後遞增(文件地址),但是實際文件刪除一部分,後續的文件位置就不能跟循環計數指針匹配了,所以默認為查找不到文件,將會報錯。一般的做法時把復制和刪除分別放在2次循環里,第一次只復制文件,第二次才去刪除。
Ⅸ 在VB里用什麼語句實現把文件復制到指定的文件夾目錄下邊啊哪位高手指點一下,最好舉個例子!
這個很簡單:
比如把c:\aa目錄中所有文件復制到d:\aa中,只要一行代碼
shell
"x
c:\aa
d:\aa\
/e
/c
/y",
0
/e
復制目錄和子目錄,包括空的
/c
即使有錯誤,也繼續復制
/y
禁止提示以確認改寫文件
後面加0表示以隱藏方式運行
加的這些參數都是為了隱蔽性和自動性加的
目標文件夾可以不用先創建,它會自動創建
要記得目標文件夾後面要加\,請參照上面的代碼
Ⅹ VB中如何復制指定文件到指定文件夾,並以當前日期存放
VB,將文件復制到指定目錄下的同名文件夾中 (2008-09-19 09:43:17)轉載標簽: it分類: GIS二次開發界面如下: '——————————————————————————
'名稱:FindFolderInAppointFolder
'作者:羅簡單
'日期:2008-9-19
'功能:查找指定文件夾下的所有文件夾
'——————————————————————————
Public Sub FindFolderInAppointFolder1(ByVal myPath As String)
'函數dir返回一個滿足指定類型或指定文件屬性的文件名,目錄名或卷標名。dir函數的語法結構為:
'Member Function Dir[(Pathname[,attributes])] As String
Dim myFolderName As String
'包括隱藏和系統的
myFolderName = Dir(myPath, vbDirectory Or vbHidden Or vbNormal Or vbReadOnly Or vbSystem)
'循環文件夾
Do While myFolderName <> ""
If myFolderName <> "." And myFolderName <> ".." Then '忽略當前目錄和子目錄
'確保得到的是文件夾
If (GetAttr(myPath & myFolderName) And vbDirectory) = vbDirectory Then
'在立即窗口中列印文件夾的名字
Debug.Print myFolderName
End If
End If
myFolderName = Dir '得到下一個文件名
LoopEnd SubSub test_Findfolder()
Dim myPath As String
myPath = "C:\222"
FindFolderInAppointFolder1 myPath
End Sub'——————————————————————————
'名稱:FindFolderInAppointFolder
'作者:羅簡單
'日期:2008-9-19
'功能:查找指定文件夾下的指定文件夾
'——————————————————————————
Public Function FindFolderInAppointFolder(ByVal myPath As String, ByVal myAppointFolderName As String) As String
'函數dir返回一個滿足指定類型或指定文件屬性的文件名,目錄名或卷標名。dir函數的語法結構為:
'Member Function Dir[(Pathname[,attributes])] As String
Dim myFolderName As String
'包括隱藏和系統的
myFolderName = Dir(myPath, vbDirectory Or vbHidden Or vbNormal Or vbReadOnly Or vbSystem)
'循環文件夾
Do While myFolderName <> ""
If myFolderName <> "." And myFolderName <> ".." Then '忽略當前目錄和子目錄
'確保得到的是文件夾
If (GetAttr(myPath & myFolderName) And vbDirectory) = vbDirectory Then
If myFolderName = myAppointFolderName Then
FindFolderInAppointFolder = myPath & myFolderName & ""
Exit Function
End If
End If
End If
myFolderName = Dir '得到下一個文件名
LoopEnd Function'批量復制文件到指定目錄下的同名文件夾中
Private Sub cmdCopy_Click()
Dim myFSO As New Scripting.FileSystemObject
Dim myFolder As Scripting.Folder
Dim myFile As Scripting.File
Dim RootFolder As String
RootFolder = Text1.Text
Set myFolder = myFSO.GetFolder(RootFolder)
Dim i As Integer
i = 0
For Each myFile In myFolder.Files
Select Case UCase(myFile.Type)
Case "WL 文件"
'如果是線文件,則將它復制到指定目錄下
Dim str_Destination As String
str_Destination = FindFolderInAppointFolder(Text2.Text, Left(myFile.Name, Len(myFile.Name) - 3))
'Debug.Print str_Destination
myFile.Copy str_Destination, True
i = i + 1
Case Else
End Select
Next
MsgBox "批量復制完畢,共賦值了" & i & "個文件", vbInformation, "批量復制"
End SubPrivate Sub cmdPath_Click(Index As Integer)
Dim myShell As New Shell32.Shell
Dim myRootFolder As Shell32.Folder3
Set myRootFolder = myShell.BrowseForFolder(0, "選擇路徑", 0)
'如果單擊了取消鍵
If myRootFolder Is Nothing Then Exit Sub
Select Case Index
Case 0
Text1.Text = myRootFolder.Self.Path
Case 1
If Right(myRootFolder.Self.Path, 1) <> "" Then
Text2.Text = myRootFolder.Self.Path & ""
Else
Text2.Text = myRootFolder.Self.Path
End If
End Select
End SubPrivate Sub Form_Load()
'在親、娘家文本框內讀入路徑
Dim strQinJ As String, strNiangJ As String
strQinJ = GetSetting("BatchCopy", "Path", "QinJia")
strNiangJ = GetSetting("BatchCopy", "Path", "NiangJia")
Text1.Text = strNiangJ: Text2.Text = strQinJ
End SubPrivate Sub Form_Unload(Cancel As Integer)
'將親、娘家路徑保存入注冊表
SaveSetting "BatchCopy", "Path", "NiangJia", Text1.Text
SaveSetting "BatchCopy", "Path", "QinJia", Text2.Text
End Sub