私が作成しているゲームの関数を作成しようとしています。これは、ゲームのデータをユーザーが指定した名前のフォルダー内のテキスト ファイルに保存します。私は自分のプロジェクト フォルダーでこれを行うことができましたが、より普遍的な場所にしたかったので、ドキュメント フォルダーを試しています。
しかし、場所を切り替えると、コードは目的の結果を生成しなくなり、プログラムのメイン ディレクトリにファイルとフォルダーの作成を開始しました。(ファイルはフォルダにありません、fyi)
void Player::save()
{
system("mkdir \"C:\\Users\\Default\\Documents\\Ice Road\"");
//Make "Ice Road" folder in documents
std::string filename((name + ".txt"));
//make a name (inputed by the user earlier) to later be used to name a text file
std::string command("mkdir ");
//string to be combined with name to make folder
std::string commandString((command + name));
//combine to make string command that creates folder
std::string newDir = ("C:\\Users\\Default\\Documents\\Ice Road\\" + name);
//string to set directory to newly created folder
std::ofstream saveStream;
//open output stream for the saving process
SetCurrentDirectory("C:\\Users\\Default\\Documents\\Ice Road\\");
//set the directory to the Ice Road documents folder (DOES NOT WORK)
system((commandString.c_str()));
//create named folder for the save files.
SetCurrentDirectory(newDir.c_str());
//set the directory to the newly created folder
saveStream.open(filename.c_str());
//Create/open a text file that holds the data being saved
system("echo on");
//turn on echo for debugging
saveStream << name << std::endl
<< difficulty << std::endl
<< health << std::endl
<< warmth << std::endl
<< hunger << std::endl
<< packSpace << std::endl
<< packUsed << std::endl;
saveStream.close();
//input data to save file
system("dir");
//show folder for debugging
system("PAUSE");
//wait for input
}
このコードを取得して、Ice Road という名前のドキュメント内にフォルダーを作成し、その中に名前付きのフォルダーとその中に名前付きのテキスト ファイルを作成するにはどうすればよいでしょうか?
(Documents\Ice Road\お名前\お名前.txt)