1

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

  1. \共享\1.txt
  2. \共享\
  3. \共享\*.txt

该文件路径将可变。

现在如何检查路径是否有单个文件或多个文件或是否有通配符?& 然后将它们移动到另一条路径。

4

1 回答 1

2

好吧,因为既不*?不可能在道路上:他们在

  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))));
于 2015-04-29T07:11:01.660 回答