我有这个代码:
public void OnCreated(object sender, FileSystemEventArgs file)
{
Console.WriteLine("created called");
string[] files = Directory.GetFiles($"{textBox2.Text}", file.Name);
if (files.Length > 0)
{
if (trueFalse == "true")
{
if (!File.Exists(Path.Combine($"C:\\Users\\{Environment.UserName}\\OneDrive", file.Name)))
{
File.Copy(files[0], Path.Combine($"C:\\Users\\{Environment.UserName}\\OneDrive", file.Name));
}
else
{
Console.WriteLine("File already exists");
}
}
if (!File.Exists(Path.Combine(textBox3.Text, file.Name)))
{
File.Move(files[0], Path.Combine(textBox3.Text, file.Name));
}
else
{
Console.WriteLine("File already exists");
}
}
else
{
Console.WriteLine($"File {file.Name} not found in directory {textBox2.Text}.");
}
}
当我在.txt
、.doc
和.docx
文件上测试它时,它可以工作,可以移动和复制,但.png
和.jpg
不能,并转到else{}块。
我不知道是什么导致了这种行为。有什么帮助吗?
1条答案
按热度按时间fbcarpbf1#
自从目录。GetFiles()方法返回一个与搜索模式匹配的文件名数组,可能是Directory。GetFiles()未正确匹配图像文件。您可以尝试更改搜索模式以包括所有图像格式,例如:
这将获取目录中的所有文件,并将结果筛选为具有指定扩展名的文件。
或者,您也可以在对其执行任何操作之前检查文件是否存在:
在尝试移动或复制该文件之前,它将首先检查该文件是否存在于源目录中,如果找不到该文件,它将打印一条错误消息。