• ベストアンサー

空のフォルダの判定

お世話になります。 開発環境:VisualBasic.net 2005 名前を指定したフォルダが空のフォルダであるならばそのフォルダを削除し、 ファイルが存在すれば処理を行う。 という記述を書こうとしているのですが、 どのように書いてよいのか悩んでいます。 If フォルダ名=からのフォルダであるか Then ***フォルダの削除処理*** Else ***処理*** EndIF 1.指定フォルダの中のファイルを一覧表示し、一覧に何も表示されなかったTrueとする 2.IO.Directory.Delete("C:\TestFolder")  でエラーが帰ってこなければTrueとする 3.何か適切な関数があるかもしれないので探してみる ということを考えたのですが、最適な方法があればご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.1

1と2の応用で、 サブフォルダの数 > System.IO.Directory.GetDirectories("C:\TestFolder").Length と、ファイルの数 > System.IO.Directory.GetFiles("C:\TestFolder").Length の合計が0なら、フォルダは空とみなす。 とかはどうでしょう?

miammi
質問者

お礼

dsuekichi様 早速のご回答ありがとうございます。 教えていただたコードで実行してみたところ見事処理を行えました。 大変感謝しております。 本当にありがとうございました。

その他の回答 (1)

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.2

2.で良いと思います。 1.は、空のフォルダの時でも一覧を取ると「.」と「..」が返され、スキップ処理が面倒です。 3.API関数「SHFileOperation」でもフォルダの削除が出来ますが、これは「フォルダが空でなくても中身ごとゴミ箱に捨てられる」ので、お勧めできません。 http://yokohama.cool.ne.jp/chokuto/urawaza/api/SHFileOperation.html

miammi
質問者

お礼

chie65536様 ご回答ありがとうございます。 教えていただいたサイトも大変勉強になりました。 ありがとうございました。

関連するQ&A