如何根据文件名的子字符串将文件从一个文件夹移动到另一个文件夹?

时间:2012-07-26 18:26:05

标签: linq

文件夹1:

C:\文件1-XPT
C:\文件1,PPT
C:\文件1-ZZZ
C:\文件2-n可
C:\文件2,DKL
C:\文件2-DLZ

string [] AllFilesInDirectory = Directory.GetFiles(SelectedDirectory);

我想将带有前缀“File1”的所有文件移动到文件夹2.

1 个答案:

答案 0 :(得分:1)

var query = AllFilesInDirectory.Where(x => Path.GetFileName(x).StartsWith("File1"));
foreach (string file in query)
{
    File.Move(file, @"C:\Folder2");
}

编辑: 根据评论。如果只知道子字符串,则可以使用Contains。注意Path.GetFileNameWithoutExtension的使用,因为如果你在搜索包含“txt”的文件,这将能够处理文件名,如“txtFile1.txt”和“File1.txt”(在这种情况下,只有第一个文件匹配)

var query = AllFilesInDirectory
           .Where(x => Path.GetFileNameWithoutExtension(x).Contains("File1"));
foreach (string file in query)
{
    File.Move(file, @"C:\Folder2");
}