如何在c#中将文件从一个路径移动到另一个路径

时间:2015-04-29 06:43:15

标签: c# system.io.file

在我的应用程序中,我可以有三条路径

  1. \共享\ 1.txt的
  2. \共享\
  3. \共享\ *。TXT
  4. 此文件路径将变为变量。

    现在如何检查路径是单个文件还是多个文件还是通配符? &安培;然后将它们移到另一条路上。

1 个答案:

答案 0 :(得分:1)

好吧,因为*?都不在路径中:它们在

  Char[] forbidden = Path.GetInvalidPathChars();

所以你可以找他们

  String path = @"C:\MyData\Shared\*.txt";
  ...
  Boolean isWildCard = path.ContainsAny('?', '*');

至于档案/目录

  Boolean isFile;

  if (File.Exists(path)) 
    isFile = true; // file already exists
  else if (Directory.Exists(path)) 
    isFile = false; // directory already exists
  else if (String.Equals(Path.GetExtension(path), ".txt", StringComparison.InvariantCultureIgnoreCase))
    isFile = true; // has txt extension, let it be a file
  else
    isFile = false;

然而,似乎您不需要任何分支(isWildCard,isFile)并且只需移动文件:

  String path = @"C:\MyData\Shared\*.txt";
  ...
  String sourceDirectory = Path.GetDirectoryName(path);  
  String destination = @"C:\Destination";

  Directory.GetFiles(sourceDirectory, "*.txt")
           .ForEach(file => File.Move(file, Path.Combine(destination, Path.GetFileName(file))));