.net - 如果该文件夹不存在,如何通过创建文件夹将文件从一个目录复制到另一个目录

标签 .net vb.net file directory copy

如果目标目录中不存在该文件夹,则通过创建文件夹将文件从一个目录复制到另一个目录时遇到一些问题。

例子:

  • 源路径: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) 中使用它作为目录.

    除此之外,我建议下次详细说明您的问题。该代码引发了有意义的异常,例如 DirectoryNotFoundException使用适当的路径作为消息或(如果文件存在)IOException带有消息“目录名称无效”。您应该将其添加到问题中。

    所以解决方案就是删除 1.txt从目录名:
    Dim sourcepath As String = "C:\temp\test\"
    

    如果您只需要复制一个文件,请使用 CopyTo method :
    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)
    

    关于.net - 如果该文件夹不存在,如何通过创建文件夹将文件从一个目录复制到另一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9207257/

    相关文章:

    .net - 动态多维数组问题

    c# - 如何保护asp :textbox from user input?

    java - 执行 .jar 时如何复制 .jar 文件内的文本文件

    python - 为什么 Python/Django 会创建重复文件

    c# - 如何将 GeoJSON 数据绑定(bind)到 ASP.NET Core 中的参数?

    c# - 枚举初始化的正确输出

    javascript - 单击复选框后如何调用 Controller 方法?

    c# - 二进制反序列化不同 .net 项目中的 vb.net 类

    mysql - MySQL 中的 SELECT 语句区分大小写

    java - 如果属性文件中的值可能会发生变化怎么办?