在不知道文件名

时间:2017-06-08 22:14:37

标签: c# file

我的一个可执行程序生成了两个文件。我想将生成的一个文件移动到共享驱动器。我正在编写一个自动过程来将文件从一个位置移动到共享驱动器。每次运行可执行文件时,唯一的问题是文件名更改,因此我没有确切的文件名。我只有扩展名.xls。我的目录中只有一个.xls文件。

我试过这个

File.Copy(@"*.xls", @"\\serv44\Application\testing\name\test2\*.xls", true);

它引发了一个错误,指出名称无效。将文件移动到共享驱动器后。我想删除.xls文件。

File.Delete("*.xls");

任何帮助将不胜感激

2 个答案:

答案 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();