我的一个可执行程序生成了两个文件。我想将生成的一个文件移动到共享驱动器。我正在编写一个自动过程来将文件从一个位置移动到共享驱动器。每次运行可执行文件时,唯一的问题是文件名更改,因此我没有确切的文件名。我只有扩展名.xls。我的目录中只有一个.xls文件。
我试过这个
File.Copy(@"*.xls", @"\\serv44\Application\testing\name\test2\*.xls", true);
它引发了一个错误,指出名称无效。将文件移动到共享驱动器后。我想删除.xls文件。
File.Delete("*.xls");
任何帮助将不胜感激
答案 0 :(得分:4)
您应该获取文件名,然后对该文件执行任何操作。即如果源目录中只有一个xls文件:
var targetDirectory = @"\\serv44\Application\testing\name\test2\";
var sourceFile = Directory.EnumerateFiles(sourceDirectory, "*.xls").FirstOrDefault();
if (sourceFile != null)
{
var sourceFileName = Path.GetFileName(sourceFile);
var targetFileName = Path.Combine(targetDirectory, sourceFileName);
File.Copy(sourceFileName, targetFileName);
File.Delete(sourceFileName);
}
注意:您可以使用单Move
次操作来代替复制和删除。
如果你想从你的源目录中移动几个文件,那么不要在循环中对所有找到的文件进行第一个处理:
foreach(var sourceFile in Directory.EnumerateFiles(sourceDirectory, "*.xls"))
{
var sourceFileName = Path.GetFileName(sourceFile);
var targetFileName = Path.Combine(targetDirectory, sourceFileName);
File.Move(sourceFileName, targetFileName);
}
答案 1 :(得分:0)
这应该给你那个文件名:
var fileName = Directory.GetFiles(yourDirectory, "*.xls").ToList().FirstOrDefault();