Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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
C# 使用c仅从文件夹中移动第一个.txt文件#_C# - Fatal编程技术网

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
}