使用c#只从文件夹中移动第一个.txt文件

本文关键字:移动 第一个 txt 文件 文件夹 使用 | 更新日期: 2023-09-27 18:13:20

简单的问题,我知道您可以使用FileMove将文件从一个路径移动到另一个路径。我的问题是,如何从文件夹中移动任何类型的文件(.mp3, .txt, .avi) 只有第一个 .txt文件从文件夹1到文件夹2?

使用c#只从文件夹中移动第一个.txt文件

您可以将通配符传递给Directory.EnumerateFiles():

string filename = Directory.EnumerateFiles("Your search folder here", "*.txt").Min();
if (filename != null)
{
    // ... Do something with filename
}

Enumerable.Min()将返回序列中的'最小'字符串(即按字母顺序排列的第一个字符串),如果序列为空,则返回null

这是有效的,因为当你传递一个通配符,如*.txtDirectory.EnumerateFiles(),它调用一个Windows API方法,只返回'.txt'文件。

Directory.GetAllFiles(@"path/to/files")
         .Select(f => new FileInfo(f))
         .First(f => f.Extension == "txt");

如果目录中没有文件,该命令将爆炸。如果目录中没有文本文件,它也会爆炸。这也取决于你对"First"的定义

可以使用GetFiles

string[] files = System.IO.GetFiles(@"C:'users'youruser'documents'", *.txt);
if(files.GetLength(0) != 0)
{
    System.IO.File.Move(files[0],pathyouwanttomoveitto);
}