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