用 io.Directory.Exists 判断文件夹是否存在.
再用 My.Computer.FileSystem.CopyDirectory() 复制.
例如,把文件"E:\新建文件夹\a.txt"复制到剪贴板
CreateObject("Shell.Application").NameSpace("E:\新建文件夹").ParseName("a.txt").InvokeVerb?"复制(C)"
写的不是很清楚,理解为复制文件
File.Copy 方法
Copy(string, String) 将现有文件(string路径)复制到新文件(string路径). 不允许覆盖同名的文件.
Copy(String, String, Boolean) 将现有文件(string路径)复制到新文件(string路径). 允许覆盖同名的文件.
这段代码的问题是:
首先for each循环在files里查找文件对象,但是f变量声明为string了,无法让它获取对象;
然后file.copy的变量file没有任何声明,也没有初始化赋值等;
可以查看附件,或则使用以下代码.应该注释的满全了.
随便建一个窗口工程,窗口代码帖入以下代码.
Imports?System.IO
Imports?System.Text
Imports?System.Reflection
Public?Class?Form1
Private?Sub?Demo()
'?变量声明
Dim?strDisplayText?As?StringBuilder?'?保存输出信息
Dim?strResName?As?String??'?保存目标资源的名称
'?变量初始化
strDisplayText?=?New?StringBuilder()
strResName?=?String.Empty
'?获取所有资源
strDisplayText.AppendLine("文件中存在以下资源:")
For?Each?strName?As?String?In?Assembly.GetExecutingAssembly.GetManifestResourceNames()
strDisplayText.AppendLine("?"?strName)
'?获得目标资源的全名
If?strName.EndsWith("."?ResName)?Then
strResName?=?strName
End?If
Next
'?目标资源不存在
strDisplayText.AppendLine()
If?strResName?=?String.Empty?Then
strDisplayText.AppendLine("抱歉,没有找名为"""?ResName?"""的资源")
Else?'?复制资源的代码
'?打开资源文件,在End?Using的时候自动关闭.
Using?ms?As?UnmanagedMemoryStream?=?Assembly.GetExecutingAssembly.GetManifestResourceStream(strResName)
'?打开磁盘文件,在End?Using的时候自动关闭.
Using?fs?As?New?FileStream("C:\"?ResName,?FileMode.Create)
Dim?Buffer(BufferSize?-?1)?As?Byte?'?复制文件时的缓冲数组
Dim?ReadCount?As?Integer??'?此次读取数据的数量
'?还有数据可以读取的情况,一直循环
ReadCount?=?ms.Read(Buffer,?0,?BufferSize)
While?ReadCount?0
fs.Write(Buffer,?0,?ReadCount)?'?写入到磁盘文件
End?While
End?Using
strDisplayText.AppendLine("文件已经复制完毕.")
'?显示消息
MessageBox.Show(strDisplayText.ToString())
End?Sub
Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
Call?Demo()
End
End?Class
'这是VB的要先引用Microsoft Scripting RunTime,下面的例子是找叫cmd.xxx的文件的
Private Sub Command1_Click()
Dim m_objFSO As New FileSystemObject
Dim objFolder As Scripting.Folder '文件夹对象
Dim objFile As Scripting.File '文件对象
Set objFolder = m_objFSO.GetFolder("c:/test")
For Each objFile In objFolder.Files
Dim filenames() As String
filenames = Split(objFile.Name, ".")
If filenames(0) = "cmd" Then
FileCopy objFile.Path, "c:/TestCMD/" "newName." filenames(1)
End If
Next objFile
End Sub
-----------------------------------这是VB.net的--------------------------
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer
Dim files() As String
files = System.IO.Directory.GetFiles("C:/test")
For i = 0 To files.Length - 1
filenames = files(i).Substring(files(i).LastIndexOf("\") + 1).Split(".")
FileCopy(files(i), "c:/TestCMD/" "newName." filenames(1))
以上就是土嘎嘎小编为大家整理的vb.net复制相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!