FileNotFoundException 但文件存在 C#

FileNotFoundException but file exists C#

namespace Backup

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void btn_Backup_Click(object sender, EventArgs e)
    {
        List<DirectoryInfo> SourceDir = this.lbox_Sources.Items.Cast<DirectoryInfo>().ToList();
        string TargetDir = this.tbox_Target.Text;

        foreach (DirectoryInfo directory in SourceDir)
        {
            foreach (var file in directory.GetFiles())
                File.Copy(file.Name, Path.Combine(TargetDir, file.Name), true);
        }
    }

当我尝试备份时抛出异常,但文件存在并且可以访问。编程不太好所以可能有一些愚蠢的错误:P

您似乎需要修改 File.Copy 行:

var targetPath = Path.Combine(TargetDir, file.Name)
File.Copy(file.FullName, targetPath , true);

我将第一个参数从 file.Name 更改为 file.FullName - 这应该可以修复异常

用 file.FullName 替换 File.Copy

中的 file.Name
foreach (var file in directory.GetFiles())
                File.Copy(file.FullName, Path.Combine(TargetDir, file.Name), true);