1

C++ でのテストで、ディレクトリの名前を既存のディレクトリと同じ名前に変更しようとしています。SHFileOperationを試しました。これは実際にはほとんど機能します。問題は、自動化されたテストがあり、自動化されたテスト中に何らかの理由でテストが失敗することです。手動実行では問題なく動作しますが、自動実行ではあまり機能しません。フラグを許可しないように設定しているにもかかわらず、いくつかのダイアログ ボックスが表示される可能性があります。私はまた、C++関数の名前を変更しようとしました。何かの名前を既存の名前に変更しようとすると、名前の変更が機能しないようです。

それで、私が使用できる他の方法はありますか?

4

3 に答える 3

2

boost::filesystemそれが重要な場合は、移植性の利点があるものを試すことができます。

namespace bfs=boost::filesystem;

std::string name("old_dir", "new_dir");

system::error_code ec = bfs::rename(name, new_name);

エラー状態を確認できるように、ここec参照できる is およびエラー コード オブジェクト。

于 2012-05-23T13:10:23.067 に答える
1

私は間違いなくブーストに行きますが、それを使用できない場合は、C++にはそのようなファイル操作のサポートが組み込まれていないことを知っておく必要があります。

最善の方法は、Cのrename()を使用することです。

http://en.cppreference.com/w/c/io/rename

于 2012-05-23T14:04:29.027 に答える
0

ディレクトリでも機能する MoveFile を試すことができます。APIが何かを既存の名前に変更できるかどうかは疑問ですが。 https://msdn.microsoft.com/en-us/library/windows/desktop/aa365239(v=vs.85).aspx

于 2016-12-07T14:29:38.923 に答える