在我的应用程序中,我可以有三条路径
此文件路径将变为变量。
现在如何检查路径是单个文件还是多个文件还是通配符? &安培;然后将它们移到另一条路上。
答案 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))));