2011-02-23 3 views
0

にディレクトリを削除する私は、一時フォルダに私のtempフォルダは、C#

try 
    { 
     string[] files = Directory.GetFiles(path + "uniquePdf\\"); 

     string[] direct = Directory.GetDirectories(path + "uniquePdf\\"); 
     foreach (string file in files) 
     { 
      File.SetAttributes(file, FileAttributes.Normal); 
      File.Delete(file); 
     } 
     Directory.Delete(path); 
    } 

パス変数の点から特定のディレクトリを削除しようとしています、とuniquePdfが、私はそこの内部で作られたフォルダです。アプリケーションを閉じるときにこのフォルダを削除するにはどうすればよいですか?上記の方法は、私が

Directory.Delete(path + "uniquePdf\\"); 
+1

あなたが言うので、それは通常、あなたが見ている、例外の詳細を含めることをお勧めします上の質問に「上記の方法は、例外をスローするようです」。人々があなたの質問に答えるのを助けるでしょう。 – Tony

+0

将来私は、以下の答えをhasworked、私は戻ってエラーを取得し、それを貼り付ける必要がありますか? – tom

答えて

3
  1. 必ずアプリケーションを閉じるときに削除パス
  2. は、アプリケーションが終了したときにコードがそれほど実行されませんが行うことができます作成​​するPath.Combine()を使用して、私はあなたをアドバイスアプリケーションの起動時にフォルダを空にする/再作成する。
  3. はい、すべてのファイルを削除する必要があります。

あなたはあなたを助ける私たちを助けるために得る例外を指定してください。

+1

+1 "for Use Path.Combine()" – Tony

2

Directory.Delete 2番目のパラメータ、bool recursiveを受け取るオーバーロードがあります何をする必要があります

Directory.Delete(path); 

で例外をスローするようです。あなたは使用することがあります:System.IO.Directory.Delete(path + "uniquePdf", true);

0

あなたは例外を得た場合、あなたが得た例外の種類を知ることが良いでしょう

Directory.Delete(Path.Combine(path, "uniquePdf"), true); 

を呼び出す必要があります。フォルダ内に開かれているファイルの1つが残っている可能性があります。したがって、ディレクトリの削除を開始する前に、すべてのファイル操作をusing()ステートメントに入れてください。またはfile.Close()を呼び出したことを確認してください。

+0

悪い名前の 'path'がシステムの一時ディレクトリであり、彼はそれを削除しようとしているので、彼は例外を受け取ります。 –

0

ちょうど他の人が言ったようにDirectory.Delete(Path.Combine(path, "uniquePdf"), true);

を行い、パスと遊ぶのがPath.xxx機能を使用し、文字列の連結をしない、とスラッシュを末尾のような魔法を心配しないでください。