c++
のディレクトリからファイルを削除するにはどうすればよいですか?引数で文字列を含むファイルを削除する
私はこの機能を知っています。int remove (const char * filename)
は、引数にファイル名が指定されているファイルを削除します。しかしそれはただchar*
を受け入れます。それは引数としてstring
を受け入れるC++の他の関数はありますか?
c++
のディレクトリからファイルを削除するにはどうすればよいですか?引数で文字列を含むファイルを削除する
私はこの機能を知っています。int remove (const char * filename)
は、引数にファイル名が指定されているファイルを削除します。しかしそれはただchar*
を受け入れます。それは引数としてstring
を受け入れるC++の他の関数はありますか?
std::string
がある場合は、c_str()
メンバー機能を呼び出すことでconst char*
を得ることができます。
remove
の関数<cstdio>
は、C標準ライブラリの一部です。 Cにはクラスまたはstd::string
という概念がないため、なぜ関数がconst char*
で、std::string
ではないのですか?
Boostライブラリを使用できる場合は、代わりにBoost :: Filesystemを調べるとよいでしょう。これは、ファイル操作ルーチンの代わりに<cstdio>にあります。
Jamesさんが述べたように、string
相当品でremove()と電話することができます。これはstring::c_str()を呼び出して取得できます。 (このコードはテストしていませんが、それは考えです):
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int main()
{
string filename("filename.ext");
if (remove(filename.c_str()) != 0)
{
perror("Error deleting file");
}
else
{
puts("File successfully deleted");
}
return 0;
}