开发者

How to return the newest file in a directory as a string?

I would like to be able to return the newest item (t开发者_C百科hat has been created) as a string within a program

e.g. s = test.txt

the "download" directory

text.txt Date created 4/5/2011
something.txt Date created 1/1/2011


How about

Directory.EnumerateFiles("directory").
  OrderBy(f => File.GetCreationTime(f)).Last()


string res = Directory.EnumerateFiles(direcory)
    .OrderByDescending(f => new FileInfo(f).CreationTime).FirstOrDefault();


Based on the code snippet from MSDN

string startFolder = @"c:\Download\";
// Take a snapshot of the file system.
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(startFolder);

// This method assumes that the application has discovery permissions
// for all folders under the specified path.
IEnumerable<System.IO.FileInfo> fileList = dir.GetFiles("*.*", System.IO.SearchOption.AllDirectories);

//Create the query
IEnumerable<System.IO.FileInfo> fileQuery =
    from file in fileList
    where file.Extension == ".txt"
    orderby file.Name
    select file;

// Create and execute a new query by using the previous 
// query as a starting point. fileQuery is not 
// executed again until the call to Last()
var newestFile =
    (from file in fileList
     orderby file.CreationTime
     select new { file.FullName, file.CreationTime })
    .Last();

Console.WriteLine("\r\nThe newest .txt file is {0}. Creation time: {1}",
    newestFile.FullName, newestFile.CreationTime);

// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit");
Console.ReadKey();
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜