C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

空でないディレクトリを削除する

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■90501 / inTopicNo.1)  空でないディレクトリを削除する
  
□投稿者/ C++ (4回)-(2019/03/15(Fri) 01:01:17)

分類:[C/C++] 

C++で空でないディレクトリを削除する方法、関数を教えてください。
引用返信 編集キー/
■90505 / inTopicNo.2)  Re[1]: 空でないディレクトリを削除する
□投稿者/ Azulean (1047回)-(2019/03/15(Fri) 06:34:02)
No90501 (C++ さん) に返信
> C++で空でないディレクトリを削除する方法、関数を教えてください。

調べ方例
1. API にないかと探してみる「RemoveDirectory function」
2. docs.microsoft.com のドキュメントを読んでみる
https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-removedirectorya
3.「To recursively delete the files in a directory, use the SHFileOperation function.」という記載を見つける。

引用返信 編集キー/
■90506 / inTopicNo.3)  Re[1]: 空でないディレクトリを削除する
□投稿者/ 774RR (675回)-(2019/03/15(Fri) 08:26:33)
実は C 言語仕様書 ISO/IEC 9899 において「ファイル」「ディレクトリ」が具体的にどういうものかは規定されていなくて、
なので ISO/IEC 9899 において
- 「ファイルを開く」という操作は存在する (fopen) けれども
- 「ファイルを削除」という操作は存在しない
- 当然ディレクトリの操作も存在しない

POSIX (いわゆる Unix の仕様書) ならば mkdir() や rmdir() といったディレクトリ操作関数があるっす。
https://linuxjm.osdn.jp/html/LDP_man-pages/man2/rmdir.2.html
POSIX API では「空でない」ディレクトリを削除する関数は提供されていないので自作することになるですよ。

Windows ならば既にコメントある通り別の手段が使える。

ということであなたが対象としている OS 名称とかバージョンとかはとても大事。
引用返信 編集キー/
■90509 / inTopicNo.4)  Re[2]: 空でないディレクトリを削除する
□投稿者/ とっちゃん (580回)-(2019/03/15(Fri) 11:01:25)
C++ でディレクトリを削除というと、std::filesystem::remove_all() ですかね。

https://cpprefjp.github.io/reference/filesystem/remove_all.html

がわかりやすいと思います。
引用返信 編集キー/
■90510 / inTopicNo.5)  Re[1]: 空でないディレクトリを削除する
□投稿者/ ぶなっぷ (193回)-(2019/03/15(Fri) 11:34:04)
質問内容からして、
> C++で空でないディレクトリを削除する方法、関数を教えてください。
空のディレクトリを削除する方法は分かっているということかな。

であれば、先にディレクトリ内のファイルを全削除して空にしてから
削除すればいいのは分かるよね?

そういう話ではない?
1関数で一気に削除できるものがあるかどうかと言う話?
であるなら、私が知る限りは無いです。

引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ