从目录中的文件复制到另一个
问题描述:
我有这应该复制选定的文件,其目录是写在txtbox1写在txtbox2导演的文件夹,如下所示的应用程序:从目录中的文件复制到另一个
代码:
Dim sourcepath As String = TextBox1.Text
Dim DestPath As String = TextBox2.Text
CopyDirectory(sourcepath, DestPath)
称为子:
Private Shared Sub CopyDirectory(ByVal sourcePath As String, ByVal destPath As String)
If Not Directory.Exists(destPath) Then
Directory.CreateDirectory(destPath)
End If
For Each file__1 As String In Directory.GetFiles(Path.GetDirectoryName(sourcePath))
Dim dest As String = Path.Combine(destPath, Path.GetFileName(file__1))
File.Copy(file__1, dest)
Next
For Each folder As String In Directory.GetDirectories(Path.GetDirectoryName(sourcePath))
Dim dest As String = Path.Combine(destPath, Path.GetFileName(folder))
CopyDirectory(folder, dest)
Next
End Sub
这个代码将所有文件复制,不仅指定的一个。有人可以告诉我如何使这个副本只有选定的文件不是文件夹中的所有文件?
答
你把整个路径作为参数(是这样的:C:/someDirectory/filename.txt),而不是比较文件名在该目录中的文件名等。
而不是使用:
For Each file__1 As String In Directory.GetFiles(Path.GetDirectoryName(sourcePath))
Dim dest As String = Path.Combine(destPath, Path.GetFileName(file__1))
File.Copy(file__1, dest)
Next
尝试:
Dim sourceFileName = Path.GetFileName(sourcePath)
For Each filePath As String in Directory.GetFiles(Path.GetDirectoryName(sourcePath))
Dim filename As String = Path.GetFileName(filePath)
If sourceFileName = filename
'Do your copy code here
End If
Next
+2
它可能会更好使用[Path.GetFileName](https://msdn.microsoft.com/en-us/library/system.io.path.getfilename(v = vs.110).aspx)方法从路径中提取文件的名称,而不是自己手动分割字符串。 –
+0
啊,你说得对。我通常不使用文件名,所以我不确定Path有什么方法。 – Wenadin
有没有什么可以选择任何内容。选择*如何 - 用户应该选择它们?请澄清和阅读[问]和采取什么样的选择文件(S)[游览] – Plutonix
?有无处任何种类的阵列,让说,选定的文件(S) – nelek
感谢的话我已经更新了我的问题,希望它现在提供足够的信息。 –