2017-01-09 3 views
0

現時点では、TaskManagerの[スタートアップ]タブに表示されるすべての情報を表示するC#でコンソールアプリケーションを作成しようとしています。フォルダ内の最新のドキュメントを読むC#

「スタートアップの影響」を得るには、C:\ Windows \ System32 \ WDI \ LogFiles \ StartupInfoディレクトリにある最新のXMLファイルから情報を読み取る必要があります。 私は

XmlDocument doc = new XmlDocument();

DOCUMENTNAMEでこれをやりたいSID + _Startupinfoは数に含まれています。 起動時にWindowsは新しい文書を作成します。これは、文書名が変更されることを意味します。 最新のドキュメントを入手する方法はありますか?この場合は5ですか?

+0

がよくあります、それは聞こえる、あなたはそれについてのヘルプが必要なのか? – Trey

答えて

1

上記のコードは、フォルダから最新の文書を読み込みます。この

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(); 

を確認してください。

0

あなたにできることはいくつかあります。私はあなたにアイデアを与えるために潜在的に使用できるいくつかの異なるソリューションを提供します。

まず、フォルダ内のすべてのファイルのリストをすべて取得する必要があります。これを行うには、電話する必要があります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_"で始まり、常に増加する場合は、その文字列を操作してその数値を取得し、最大の値を得るためにさまざまな処理を行うことができます。あなただけの降順配列をソートできよう

私は、コードサンプルを提供したい、しかし、などなどstring.Replaceような可能性の無限の数、正規表現、

関連する問題