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);
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.Nameforeach (var file in directory.GetFiles())
File.Copy(file.FullName, Path.Combine(TargetDir, file.Name), true);