2017-06-07 8 views
1

ここに私のコードは削除されますが、2つのサブフォルダを含めて削除されます。私は2つのサブフォルダの内容だけを削除したいと思います。2つのサブフォルダの内容のみを削除する

  Array.ForEach(Directory.GetFiles(txtfilename.Text), File.Delete); 
      System.IO.DirectoryInfo di = new DirectoryInfo(txtfilename.Text); 

      foreach (FileInfo file in di.GetFiles()) 
      { 
       file.Delete(); 
      } 
      foreach (DirectoryInfo dir in di.GetDirectories()) 
      { 
       dir.Delete(true); 
      } 

誰かがデバッグしたり、いくつかの解決策を表示できる場合は、どうもありがとうございます。

+0

「dir.Delete(true);」は何ですか? –

+0

はい、ディレクトリ内で削除されます。たとえば、これは私のディレクトリで、e:\ user \ sam \ desです。desフォルダのみをマップする必要がありますが、desフォルダには2つのサブフォルダがあり、2つのサブフォルダの内容のみを削除します。 – Sam

+1

その後、すべてのディレクトリの削除を停止し、保存したいディレクトリを削除しないでください。 'dir'にはそれぞれの名前がありますが、ループ内のすべてのものを削除するだけです。実際にコードを読んでおけば助けになります。 –

答えて

0

いいえ。私自身の問題を解決しました。私はこのコードを使用しました。いくつかのコードを検索してそれぞれのアイデアを結合した後、私はこの種のコードを思いついたのですが、私が何をしているのか完全に理解していません。

string local = txtfilename.Text; 
    string[] dirs = Directory.GetFiles(local, 
        "*.csv*", SearchOption.AllDirectories); 

    List<string> singleDirNames = dirs.Select(x => new 
    FileInfo(x).Directory.Name).Distinct().ToList(); 

    foreach (string filePath in dirs) 
     { 
     if (filePath.Contains(".csv")) 
     File.Delete(filePath); 
     } 

2つのサブフォルダの内容はcsvファイルなので、私は特に削除するファイル拡張子を対象としています。私は削除する特定の拡張子への私の少ない私の欲しい。私は本当に2つのサブフォルダ内のすべてを削除したい。誰でも私の答えを改善できますか?

関連する問題