![](/img/trans.png)
[英]Creating copy of a file at one position up in the same folder/directory location
[英]How to copy a file from one directory to another directory by creating the folder if that folder does not exist
如果目标目录中不存在该文件夹,则通过创建文件夹将文件从一个目录复制到另一个目录时出现问题。
例:
C:\\temp\\test\\1.txt
C:\\Data\\
如果C:\\Data\\
不包含“temp”或“test”文件夹,则应在复制1.txt
之前创建该文件夹。
复制到C:\\Data\\temp\\test\\1.txt
以下是我的代码。 但它不起作用..
Private Sub btnBackup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBackup.Click
Dim sourcepath As String = "C:\temp\test\1.txt"
Dim DestPath As String = "C:\Data\"
CopyDirectory(sourcepath, DestPath)
End Sub
Private Shared Sub CopyDirectory(sourcePath As String, destPath As String)
If Not Directory.Exists(destPath) Then
Directory.CreateDirectory(destPath)
End If
For Each file__1 As String In Directory.GetFiles(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(sourcePath)
Dim dest As String = Path.Combine(destPath, Path.GetFileName(folder))
CopyDirectory(folder, dest)
Next
End Sub
以下不是目录。
Dim sourcepath As String = "C:\temp\test\1.txt"
因为您将它用作Directory.GetFiles(sourcePath)
中的Directory.GetFiles(sourcePath)
。
除此之外,我建议您下次再详细说明您的问题。 代码引发了有意义的异常,例如DirectoryNotFoundException
,其中相应的路径为消息,或者(如果文件存在) IOException
,消息“目录名称无效” 。 你应该把这个添加到问题中。
所以解决方案就是从目录名中删除1.txt
:
Dim sourcepath As String = "C:\temp\test\"
如果只需要复制一个文件,请使用CopyTo方法 :
Dim sourcepath As String = "C:\temp\test\"
Dim DestPath As String = "C:\temp\Data\"
If Not Directory.Exists(DestPath) Then
Directory.CreateDirectory(DestPath)
End If
Dim file = New FileInfo("C:\temp\test\1.txt")
file.CopyTo(Path.Combine(DestPath, file.Name), True)
Dim strMasterResourceDirectory As String
Dim strDirectory As String
strDirectory = "C:\TestDestination"
strMasterResourceDirectory = "TestResource"
If My.Computer.FileSystem.DirectoryExists(strDirectory) = False Then
My.Computer.FileSystem.CreateDirectory(strDirectory)
End If
' Loop through each file in the directory
For Each file As IO.FileInfo In New IO.DirectoryInfo(strDirectory).GetFiles
If file.Name <> "Thumbs.db" Then
System.IO.File.Delete(strDirectory & "\" & file.Name)
End If
Next
' Loop through each file in the directory
For Each file As IO.FileInfo In New IO.DirectoryInfo(strMasterResourceDirectory).GetFiles
If file.Name <> "Thumbs.db" Then
' copy resource to users local directory
file.CopyTo(strDirectory & "\" & file.Name)
End If
Next
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.