• ベストアンサー

空きでないディレクトリの削除

VisualStdio.NET VC (MFC利用) でディレクトリを削除する方法教えてください。 ただしディレクトリは空きではありません。 \temp\123\abc.dat \temp\123\def.dat (ReadOnly) \temp\abc.dat \temp\def.dat \temp\123\456\aa.dat (Hidden) のように対象のディレクトリの下にサブディレクトリやファイルが あったり読み込み専用などのファイルがあるかもしれません。 読みとり専用、隠しファイルなどもユーザーの確認なしで削除する方法を 教えてください。 *ファイルが使用中などでどうしても削除できない場合はそのファイルは とばしてかまいません。 ヘルプみてもディレクトリが空きであることが条件なのでわかりません。 お願いします。

  • lilis
  • お礼率77% (108/139)

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

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

>ただファイル使用中の場合はエラーメッセージが出てしまいます。 >これを表示しないようにする方法わかりませんか? >「ファイルまたはフォルダの削除エラー」 >で確認メッセージが出てしまいます。 ヘルプをちゃんと見てくださいね。 FOF_NOERRORUI を指定してください。

その他の回答 (2)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

SHFileOperation()を使いましょう。

lilis
質問者

補足

現在これでやってみました、PC01はネットワーク上です。 共有フォルダがtemp です。 SHFILEOPSTRUCT sfo; memset(&sfo,0,sizeof(sfo)); sfo.hwnd = NULL; //ウインドウハンドル sfo.wFunc = FO_DELETE; sfo.pFrom = "\\PC01\temp";//削除先 sfo.fFlags=FOF_SIMPLEPROGRESS|FOF_NOCONFIRMATION;//削除する SHFileOperation(&sfo); ファイルが読み込み専用、隠しでもできました。 ただファイル使用中の場合はエラーメッセージが出てしまいます。 これを表示しないようにする方法わかりませんか? 「ファイルまたはフォルダの削除エラー」 で確認メッセージが出てしまいます。

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.1

こんにちわ。 ディレクトリ内を検索してから最後にディレクトリを削除するように するしかないと思います。 ディレクトリ内のファイルを検索するのは、FindFiestFile/FindNextFile を再帰的に使用すればできます。

lilis
質問者

補足

SHFileOperation でやってみています。 FindFiestFile/FindNextFile の場合具台的にどのようにやればいいのでしょうか? ディレクトリだった場合、再帰的な処理する部分がわかりません。

関連するQ&A

  • ディレクトリの削除

    winxp he sp2 Q: \temp以下のdirectoryとfileを削除する方法ありませんか  RD /s \temp では \tempも削除されます。 \tempは残して、それ以下のdirとfileを削除する方法です。 \tempの下の\aa \bb はテンポラリdirで、名前がころころ変わります。 \temp -\aa 名前がころころ変わる -\bb 名前がころころ変わる RD /s \temp /S 指定されたディレクトリに加えて、そのディレクトリ内のすべての ディレクトリとファイルを削除 よろしくお願いします。

  • ディレクトリ下のファイルとサブディレクトリを全削除

    バッチファイル作成の際、分からないことがあるのですが。 タイトルの通り、ディレクトリ下のファイルとサブディレクトリを全削除したいのですが、そのディレクトリ自体は残したいのです。 例えば "Temp"以下の全ファイルとサブディレクトリを削除したい場合 del "Temp" /s とするとサブディレクトリは残ってしまい、 rd "Temp" /s とすると"Temp"自体削除されてしまいます。 この場合、一度rdコマンドで削除した上でmdなどで新たにディレクトリを作成してやるしかないのでしょうか?

  • ファイルやディレクトリの削除コマンドについて

    ファイルやディレクトリの削除コマンドについて 現在、サーバ内のあるディレクトリ内に保存されているファイルやフォルダを 全て消去したいと思い、batファイルを作成してテストを行っているのですが、 うまくいきません。 ファイルの削除はうまくいきますが、空フォルダが残ってしまします。 batファイルの中身は以下の通りです。 del /s /q x:\test\abc\*.* rd /s /q x:\test\abc\* testやabcは実際のディレクトリ名では有りませんが、 やりたいことは、abcディレクトリ下のフォルダおよびファイルを 全て削除し、abcディレクトリは消さずに残すようなbatファイルが作りたいということです。 abcディレクトリの下には多くのファイルやディレクトリがあり、毎日違う名前のファイルや フォルダが作成されるのでそれを毎日まとめて消す方法をご教授願います。 よろしくお願いします。

  • IISのホームディレクトリについて

    IISのホームディレクトリの下に、フォルダを作成して、ログファイルを入れようと したところ、読み取り専用でログファイルが作成されませんでした。 手動で読み取り専用を外しても、自動的に読み取り専用になってしまいます。 IISのホームディレクトリは、セキュリティ上、読み取り専用なのでしょうか? 又は、ログファイルを作成するフォルダのみ、読取専用を外す方法があるのでしょうか? そもそも、ホームディレクトリの中にログファイルを入れるフォルダを作成すること自体が 間違いなのでしょうか? よろしくお願いします。

  • 特定ディレクトリのみ、特定拡張子のファイルを表示したくない

    表題の通りなのですが、特定ディレクトリ内にある特定拡張子のファイルのみを非表示にしたいのです。 例えば、[ file.xyz ]と言う拡張子のファイルがあったとします。それをそれぞれ[ c:\abc ][ d:\def ]と言う ディレクトリに格納し、後者のディレクトリに入った場合のみ非表示(隠し属性)とする方法はあるのでしょ うか? c:\abc\file.xyz ← 表示 d:\def\file.xyz ← 非表示(隠し属性) OSはWindows XP SP3となります。 ご存知の方、ご教示頂きたいと思います。

  • DOS-指定ファイルをサブディレクトリからも一括削除したい

    初歩的質問ですみません。ご教授下さい。 Cドライブ配下(サブディレクトリも含む)の ’abc’ という名前のディレクトリを一括削除したいのですが、うまくいきません。 試したコマンドは以下です。 C:\>RD /S /Q abc C:\>erase /F /Q abc フォルダ abc の中身にはファイルがありそのファイルも全て削除したいです。 忙しい中すみませんが教えてください。 -環境- Win XP SP2 HOME

  • コマンドプロントでファイルの削除方法

    コマンドプロント初心者です。 やりたいことは、バッチ処理にて、指定したフォルダ内の「*.dat」ファイルを削除することです。 ネットで調べてみたんですが、削除されません。 また、削除してよいかの確認メッセージも表示されません。 何が悪いのかご教授お願いします。 以下が作成したバッチファイルの中身です。 -- ********************************** -- Outlook 2010 添付ファイルのキャッシュを削除する -- ********************************** C:\Temp>del *.dat C:\Temp\*.dat、よろしいですか (Y/N)?

  • 文字化けして削除できないファイルがあります

    宜しくご教授下さい。 以前使用をしていたファイルがあるのですが、ファイルのタイトルが文字化けをして削除できない状態になっております。 もともとのファイル名例  abc(def).doc 表示上のファイル名    abc§def)doc (が§と表示されています。(実際は§では無く、黒四角に十字が白抜きになったような記号です) 気づくと§になってしまっていました。 コマンドプロンプトの del コマンドで試そうとしたのですがドラッグ&ドロップでプロンプト画面に持っていくとabc(def).docが張り付き、 実行させてもそんなファイルはありませんとなってしまいます。 宜しくお願いいたします。

  • ディレクトリやファイルがまる見えのサイト

    時々あるサイトにアクセスしてURLの最後のxxx.htm(l)を削除してしまうと FTPサイトの様に「ディレクトリ」や「ファイル」がまる見えの事があります。 例えば http://www.abc.com/~def/ghi/jkl.htm の「jkl.htm」を削除して http://www.def.com/~def/ghi/で開くとこのサイトの構造が見えてしまう 訳です。 空でも良いからindex.htm(l)が無い為の現象かと思ったりするのですが どうもそれだけでは無さそうです。私が見たサイトのサーバーのOSはUNIX とLinuxでした。 この様な現象は「ユーザー側のHPの問題なのか」又は「サーバー側の問題 (例えばApacheの設定)」なのか、どんな事が考えられますでしょうか ご教示下さい。

  • JSP→JSP フォームチェック

    困っているので助けてください。 まずプログラムの説明をさせてもらいます。 JSPからfromをつかってJSPにフォーム情報を送ります。 プログラムはこんな感じです。 <form action="abcdefg.jsp" method="post"> <input type="hidden" name="abc" value="abc"> <input type="hidden" name="def" value="def"> <input type="checkbox" name="aa" value="aa"> <input type="checkbox" name="bb" value="bb"> <input type="checkbox" name="cc" value="cc"> <input type="submit" value="次へ"> </form> これをabcdefg.jspで受け取る場合 String hidden_abc = request.getParameter("abc"); String hidden_def = request.getParameter("def"); とhiddenは必ず値が入っているのでこれで受け取れるのですが チェックボックスは選択しているかどうかわからないので上の記述では だめなようなのですがどのようなプログラムを書いたらいいのですか? 説明がうまく出来なく申し訳ないです。よろしければ教えてください。

    • ベストアンサー
    • Java