Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq 如何根据文件名的子字符串将文件从一个文件夹移动到另一个文件夹?_Linq - Fatal编程技术网

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

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

文件夹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).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");
}