質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

53355閲覧

【C#】特定のフォルダ内の中身のフォルダ、ファイルのみを削除したい。

Satochan24

総合スコア113

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2015/09/30 06:00

C#で特定のフォルダ(dataフォルダ)内の中身のフォルダとファイルのみを削除したいのですが、Webで調べましたが、なかなか見つかりません。
何か方法ありますでしょうか?

フォルダ構造は、

dataフォルダ - 1 フォルダ - ○○ファイル…
2フォルダ - ○○ファイル…
4フォルダ

のような構造になってまして、一番上のdataフォルダは空でも残して
置かないと、システムにログイン時にエラーが出てしまいます。
削除後にdataフォルダだけを作れば良いと思いますが、できれば
よりスマートに処理したいです。

以下のようなコードで試しましたが、dataフォルダごと消えてしまいました。

var localPath = Contents.Path.GetDataDir(); // ← D://workspace//data// などのパスが入る。

System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(localPath); di.Delete(true);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。

どこまでスマートさを求めているのかですけど…、とりあえずファイルもフォルダも指定して消したらどうですか。

C#

1DirectoryInfo target = new DirectoryInfo(path); 2//ファイル消す 3foreach(FileInfo file in target.GetFiles()) 4{ 5 file.Delete(); 6} 7//フォルダも消す 8foreach(DirectoryInfo dir in target.GetDirectories()) 9{ 10 dir.Delete(true); 11}

投稿2015/09/30 06:16

Tak1wa

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Satochan24

2015/09/30 06:42

さっそく、ありがとうございます。 試してみたら、成功しました! 全然、スマートだと思います!! ついでにもう一つ機能を追加したいのですが、 この機能で、dataフォルダの中身を全て削除後、 再度、削除を試みた場合に、「ファイルもフォルダもありません。」 などのメッセージを出したいのですが、良い方法ありますでしょうか? if(file.count = 0)などと試してみましたが、ダメでした。
Tak1wa

2015/09/30 06:56

Directory.GetFileSystemEntries(path).Length == 0 で判断するのが良いですかね。ファイルもフォルダも関係なく列挙してくれるので。
Satochan24

2015/09/30 07:09

有難うございました。無事、成功しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問