電子書籍の厳選無料作品が豊富!

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)

のように対象のディレクトリの下にサブディレクトリやファイルが
あったり読み込み専用などのファイルがあるかもしれません。

読みとり専用、隠しファイルなどもユーザーの確認なしで削除する方法を
教えてください。
*ファイルが使用中などでどうしても削除できない場合はそのファイルは
とばしてかまいません。

ヘルプみてもディレクトリが空きであることが条件なのでわかりません。
お願いします。

A 回答 (3件)

>ただファイル使用中の場合はエラーメッセージが出てしまいます。


>これを表示しないようにする方法わかりませんか?
>「ファイルまたはフォルダの削除エラー」
>で確認メッセージが出てしまいます。

ヘルプをちゃんと見てくださいね。
FOF_NOERRORUI
を指定してください。
    • good
    • 0

SHFileOperation()を使いましょう。

この回答への補足

現在これでやってみました、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);


ファイルが読み込み専用、隠しでもできました。
ただファイル使用中の場合はエラーメッセージが出てしまいます。
これを表示しないようにする方法わかりませんか?
「ファイルまたはフォルダの削除エラー」
で確認メッセージが出てしまいます。

補足日時:2002/11/01 21:39
    • good
    • 0

こんにちわ。



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

この回答への補足

SHFileOperation
でやってみています。

FindFiestFile/FindNextFile
の場合具台的にどのようにやればいいのでしょうか?

ディレクトリだった場合、再帰的な処理する部分がわかりません。

補足日時:2002/11/01 21:41
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!