C# 读取文件夹C中的最新文档#

C# 读取文件夹C中的最新文档#,c#,xml,logging,C#,Xml,Logging,目前,我正试图用C语言编写一个控制台应用程序,它显示Taskmanager中“启动”选项卡显示的所有信息 要获得“启动影响”,我需要从C:\Windows\System32\WDI\LogFiles\StartupInfo目录中的最新XML文件中读取信息。 我想和你一起做这件事 XmlDocument doc=新的XmlDocument() documentname包含带有数字的SID+\u Startupinfo。 每次启动时,Windows都会创建一个新文档。这意味着文档名称将更改。 在本例

目前,我正试图用C语言编写一个控制台应用程序,它显示Taskmanager中“启动”选项卡显示的所有信息

要获得“启动影响”,我需要从C:\Windows\System32\WDI\LogFiles\StartupInfo目录中的最新XML文件中读取信息。 我想和你一起做这件事

XmlDocument doc=新的XmlDocument()

documentname包含带有数字的SID+\u Startupinfo。 每次启动时,Windows都会创建一个新文档。这意味着文档名称将更改。 在本例中,是否有办法始终获取最新文档5

请检查这个

var directory = new DirectoryInfo("C:\\MyDirectory");
var myFile = (from x in directory.GetFiles()
             orderby x.LastWriteTime descending
             select x).First();

// or...
var myFile = directory.GetFiles()
             .OrderByDescending(x => x.LastWriteTime)
             .First();

上面的代码将从文件夹中读取最新文档。

您可以做一些不同的事情。我将提供一些不同的解决方案,您可以潜在地使用它们来给您一个想法

首先,您需要获得文件夹中所有文件的列表。为此,我们需要调用
Directory.GetFiles(@“C:\Windows\System32\WDI\LogFiles\StartupInfo”)

这将为您提供一个包含所有文件的字符串数组。这就是它的乐趣所在

您可以通过调用
file.GetLastWriteTime
来检查文件的上次写入时间,然后找到具有最大写入时间的文件

样本:

var files = Directory.GetFiles(@"C:\Windows\System32\WDI\LogFiles\StartupInfo");

var mostRecentFile = files.Select(file => new 
{ 
    File = file, 
    LastWriteTime =    File.GetLastWriteTime(file) 
})
.OrderByDescending(x => x.LastWriteTime)
.First();
或者您可以只解析文件名。如果文件总是以“SID_”开头,并且它们总是递增的,那么您可以执行各种不同的操作来操纵该字符串以获得该数字,并获得最大值


我会提供一个代码示例,但是有无限多的可能性,例如
字符串.替换
,正则表达式等。

好吧,听起来你可以将数组降序排序,你需要帮助吗?