2016-07-16 2 views
0

私はこのコードで、さまざまなサブディレクトリの下にある多くの類似しているが古いファイルを含むディレクトリ内のファイルから特定のRemoteID情報を取得しようとしています。 最新変更されたファイルからこのパラメータを抽出できないようです。最新の修正ファイルを含むフォルダを選択するにはどうすればよいですか?

これまでのところ、すべてのサブディレクトリ内の最新の.iniファイルに対して、「N:\ WBS Data \ DL Archive \ DL Data Files」全体のコードが表示されます。

階層内の1つのディレクトリで同じことを繰り返す必要があります。 「N:\ WBSデータ\ DLアーカイブ\ DLデータファイル\ xフォルダ」、「N:\ WBSデータ\ DLアーカイブ\ DLデータファイル\ yフォルダ」、「N:\ WBSデータ\ DLアーカイブ\ DLデータファイル\ zフォルダ "などとなります。

私はこのようにあなたがすべきだと思う
using System; 
using System.IO; 
using System.Linq; 

namespace Refresh_WGL_Configs 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

      string tempFile = ""; 
      string tempCurrFile = ""; 
      string remoteID = ""; 
      string groupID = ""; 


      try 
      { 

       foreach (string d in Directory.GetFiles(@"N:\WBS Data\DL Archive\DL Data Files", "*.ini", SearchOption.AllDirectories).OrderByDescending(f => File.GetCreationTime(f)).Take(1)) 

       { 
        string currDir = Path.GetDirectoryName(d); 

        // Set ini file and temporary text filenames 
         tempFile = currDir + @"\XferStat.txt"; 
         tempCurrFile = currDir + @"\XferStat.ini"; 

        // Convert the ini file to a text file then extract remote ID 
        convert_to_text(tempCurrFile, tempFile); 
        remoteID = grab_remote_ID(tempFile); 

        // Clean up temporary text file 
        File.Delete(tempFile); 

        // Extract group ID 
        groupID = grab_group_ID(currDir); 

        // Copy files from C drive to D drive 
        _C_to_D(remoteID, groupID); 

        // Reset ID's 
        groupID = ""; 
        remoteID = ""; 

       } 

      } 

      catch (System.Exception ex) 
      { 

       Console.WriteLine(ex.Message); 

      } 

     } 

} 
+0

は 'SearchOption.AllDirectories'は、デフォルトではあなたにその動作を与えるものではありません)? –

+0

または、最新の '.ini'ファイルをどのサブフォルダにグループ化するかを指定しますか? –

答えて

0

:あなたはサブフォルダのリストせずにそれを外のパス(すなわちを与える場合

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

残念ながら、私はforeachステートメント内でそれを収めることができませんでした! –

関連する問題