Linq 如何根据文件名的子字符串将文件从一个文件夹移动到另一个文件夹?
文件夹1:Linq 如何根据文件名的子字符串将文件从一个文件夹移动到另一个文件夹?,linq,Linq,文件夹1: C:\File1 xpt C:\File1 ppt C:\File1 zzz C:\File2 ndo C:\File2 dkl C:\File2 dlz string[]AllFilesInDirectory=Directory.GetFiles(SelectedDirectory) 我想将前缀为“File1”的所有文件移动到文件夹2中。 var query = AllFilesInDirectory.Where(x => Path.GetFileName(x).Starts
C:\File1 xpt
C:\File1 ppt
C:\File1 zzz
C:\File2 ndo
C:\File2 dkl
C:\File2 dlz
string[]AllFilesInDirectory=Directory.GetFiles(SelectedDirectory)
我想将前缀为“File1”的所有文件移动到文件夹2中。
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”这样的文件名
编辑:
根据评论。如果只知道子字符串,可以使用Contains
。请注意使用Path.GetFileNameWithoutExtension
,因为如果您正在搜索包含“txt”的文件(在本例中,只有第一个文件匹配),它将能够处理像“txtFile1.txt”和“File1.txt”这样的文件名
它说不能创建已经存在的文件。不知道为什么,这个文件在folder2also中不存在,如果我不知道“startswith”是什么呢?我只知道它的子字符串部分?它说不能创建已经存在的文件。不知道为什么,这个文件在folder2also中不存在,如果我不知道“startswith”是什么呢?我只知道它的子串部分?
var query = AllFilesInDirectory
.Where(x => Path.GetFileNameWithoutExtension(x).Contains("File1"));
foreach (string file in query)
{
File.Move(file, @"C:\Folder2");
}