
Cでのフォルダの削除方法が分からず困っています。
ファイルの削除は"remove()"で行うことができましたが、フォルダは同じ方法ではできないようです。
No.394869 の質問を参考にして"SHFileOperation()"を使用してみたのですが、エラー担ってしまいました。(Access Violation)
"SHFILEOPSTRUCT"の値の設定(ハンドルなど)がうまくいっていないのかな?とも思ったのですが、
どうすればよいのかわかりません。
別の方法があればそれでもいいですし、"SHFileOperation()"の使い方(ハンドルの設定など)を知りたいのでよろしくお願いします。
ちなみに、今は以下の方法でやっていました。
フォルダ内(testfolder)は空の状態です。
********************************************
SHFILEOPSTRUCT shfileop;
/* ファイルの削除 */
shfileop.hwnd = NULL;
shfileop.wFunc = FO_DELETE;
shfileop.pFrom = "C:\\TEST\\testfolder";
shfileop.fFlags = FOF_SIMPLEPROGRESS|FOF_NOCONFIRMATION;
SHFileOperation(&shfileop);
No.2ベストアンサー
- 回答日時:
FOF_SIMPLEPROGRESSが指定されていますね。
このときは、lpszProgressTitleが有効になるので構造体を初期化しないとエラーになるでしょう。
もしかしたらNULLでもだめで、文字列を指定しないといけないかも。
_rmdirは、空のディレクトリしか削除できない点に気をつけてくださいね。
ありがとうございます。
おっしゃるとおり、構造体の初期化に問題があったようです。
構造体の初期化をしてから実行してみたところ、
正常にフォルダを削除することができました。
これからも何かありましたらよろしくお願い致します。
No.1
- 回答日時:
ファイル名は、最後にNULL文字が2つ連続する必要があります。
shfileop.pFrom = "C:\\TEST\\testfolder\0";
として試してみてください。
回答ありがとうございます。
早速"\0"を追加してやってみましたが、
他に問題があったようでエラーが発生してしまいました。
上司にも相談していろいろ聞いてもらったところ、
"_rmdir関数"というものがあり、それを使うようにと言われました。
その方法で試してみたら正常にフォルダが削除されたので、"_rmdir()"を使用することにします。
"SHFileOperation()"でのエラーについては、
時間を見つけて解決してみようと思います。
ありがとうございました。
ちなみに、_rmdir関数の使用法は以下の通りです。
intRet = _rmdir(strDirPath);
(strDirPath = 削除対象ディレクトリパス)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Borland C++ Compilerのエラー...
-
カスタムメイド3Dのエラーにつ...
-
韓国に送った添付ファイルexcel...
-
リンカ 致命的エラーについて
-
VCで作成したDLLの使用
-
勝手にdatファイルになるのです...
-
[ブロック解除]の方法が知りた...
-
WordでURLをクリックしてそのペ...
-
Beckyで手を加えずに転送の送信...
-
Excelでのhtml形式ハイパーリン...
-
messengerに投稿したwordファイ...
-
デスクトップのファイルが上書...
-
FTPへのアップロードが失敗する
-
ギガファイル便って女の人のエ...
-
裁判所から届く「訴状」は転送...
-
ファイルが勝手にダウンロード...
-
転送と回送の違い
-
Googleドライブに保存するとPC...
-
録音アプリのPCM録音で4時間録...
-
FTP転送中断について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6 使用中ファイルの確認
-
ファイルopenエラーになってし...
-
ファイルの移動が出来ません
-
FrontPageで作成し、保存したペ...
-
HDD内のデータがおかしくなって...
-
一度PictureBoxに表示させたフ...
-
dreamweaverで作成したHPをアッ...
-
カスタムメイド3Dのエラーにつ...
-
メールで送ってもらったらデー...
-
属性の値に特殊文字が大量にあ...
-
ページでエラーが発生しました...
-
『リンクエラー』のあるファイル
-
ファイルをアップロードするとh...
-
VCで作成したDLLの使用
-
エクセルVBA インデックスが有...
-
thunderbardでエラーが出ます。
-
Excelのハイパーリンクがエラー...
-
audacity-win-2.3.2 インストー...
-
コンパイル時のエラーについて...
-
Irvineフリーのプロトコルエラ...
おすすめ情報