C# 使用c仅从文件夹中移动第一个.txt文件#
简单的问题,我知道你可以使用C# 使用c仅从文件夹中移动第一个.txt文件#,c#,C#,简单的问题,我知道你可以使用FileMove将一个文件从一个路径移动到另一个路径。我的问题是,你如何才能从一个装满各种文件的文件夹(.mp3,.txt,.avi)只将第一个.txt文件从文件夹1移动到文件夹2 Directory.GetAllFiles(@"path/to/files") .Select(f => new FileInfo(f)) .First(f => f.Extension == "txt"); 如果目录中没有文件,这将爆炸。
FileMove
将一个文件从一个路径移动到另一个路径。我的问题是,你如何才能从一个装满各种文件的文件夹(.mp3
,.txt
,.avi
)只将第一个.txt文件从文件夹1移动到文件夹2
Directory.GetAllFiles(@"path/to/files")
.Select(f => new FileInfo(f))
.First(f => f.Extension == "txt");
如果目录中没有文件,这将爆炸。如果目录中没有文本文件,它也会爆炸。这还取决于您对“第一个”的定义,您可以使用GetFiles
string[] files = System.IO.GetFiles(@"C:\users\youruser\documents\", *.txt);
if(files.GetLength(0) != 0)
{
System.IO.File.Move(files[0],pathyouwanttomoveitto);
}
您可以将通配符传递到
目录。EnumerateFiles()
:
Enumerable.Min()
将返回序列中的“最小”字符串(即按字母顺序排列的第一个字符串),如果序列为空,则返回null
这是有效的,因为当您将通配符(如
*.txt
传递到目录.EnumerateFiles()
时,它会调用只返回.txt文件的Windows API方法。您对“第一个”的定义是什么?按字母顺序?你说的“第一个文件”是什么意思?要移动目录中按字母顺序排列的第一个.txt文件还是要移动目录中的所有.txt文件?对不起,我不完全理解这个问题。首先,按字母顺序排列,对不起,忘记指定。是否枚举文件
返回按字母顺序排列的文件?@mxscho no。我刚注意到OP改变了他的规格。。。叹气。你只需在枚举文件
之后添加一个排序步骤,我想仍然有最好的解决方案。当然,这是有道理的。
string filename = Directory.EnumerateFiles("Your search folder here", "*.txt").Min();
if (filename != null)
{
// ... Do something with filename
}