2017-10-06 16 views
-1

すべてのディレクトリの日付を変更するループをセットアップしようとしています@"C:\testFolder"これまでのコードを貼り付けています。ディレクトリの日付を変更するループを作成する

static void Main() 
{ 
    string n = @"C:\testFolder"; 
    DateTime dtime1 = new DateTime(2015, 1, 3); 

    if (Directory.Exists(n)) 
     Directory.SetCreationTime(n, dtime1); 
     Directory.SetLastWriteTime(n, dtime1); 

     Console.WriteLine("Done"); 

} 
+0

、問題は次のようになり...... –

+0

それは、変更しようとしているように見えます私が "test folder"内のすべてのディレクトリの日付を変更しようとしているときに、 "test folder"のタイムスタンプ。プログラムがクラッシュし、「IOExceptionが処理されました - プロセスが別のプロセスで使用されているため、c:\ testFolderファイルにアクセスできません」@SamAxe – user7701115

答えて

2

if中括弧のないステートメントは、その直後のステートメントにのみ適用されます。ブロック全体を括弧で囲んでください。

また、あなたが再帰的にtestFolderの下のすべてのディレクトリをしたいことを指定するSearchOptionDirectory.GetAllDirectories(..)を使用することができます。以下はこれを示していますが、代わりに希望の場合はSearchOption.TopDirectoryOnlyを使用することもできます。

static void Main() 
{ 
    string n = @"C:\testFolder"; 
    DateTime dtime1 = new DateTime(2015, 1, 3); 

    if (Directory.Exists(n)) { 
     string[] allSubDirectories = Directory.GetDirectories(n, "*", SearchOption.AllDirectories); 
     foreach(var dir in allSubDirectories) { 
      Directory.SetCreationTime(n, dtime1); 
      Directory.SetLastWriteTime(n, dtime1); 
     } 
    } 

    Console.WriteLine("Done"); 
} 
0

あなたが行うことができ、そのディレクトリ内のすべてのディレクトリの日付を設定する場合:

static void Main() 
{ 
    string n = @"C:\testFolder"; 
    DateTime dtime1 = new DateTime(2015, 1, 3); 

    if (Directory.Exists(n)) 
    { 
     Directory.SetCreationTime(n, dtime1); 
     Directory.SetLastWriteTime(n, dtime1); 
     var directories = Directory.GetDirectories(n); 

     foreach(directory in directories) 
     { 
       Directory.SetCreationTime(directory , dtime1); 
       Directory.SetLastWriteTime(directory , dtime1); 
     } 

    } 
    Console.WriteLine("Done"); 

} 
関連する問題