2013-12-07 3 views
1

Я хочу создать файл в папке с использованием OFstream. Следующие строки кода - всегда указать «Выходной файл не может быть создан ...». Независимо от того, что я пробую.C++ Создание файла, если он не существует

В конце концов я хочу заменить часть JOHN строки с переменной (тип String).

Советы были бы очень признательны.

 ofstream output_file(".\\Players\\JOHN\\Balance.txt", ios::app); // open the output file for appending 
if (!output_file.is_open()) { // check for successful opening 
    cout << "Output file could not be opened! Terminating!" << endl; 
    _sleep(1000); 
    return 1; 
} 
else{ 

output_file << getAcctbal(); 
output_file.close(); 
return 0; 
} 

EDIT:

Что есть папка Игроки - в этой папке Игроки. В этом случае для каждого отдельного игрока я хочу иметь файл (так Джон). Эта папка не существует, и я пытаюсь ее достичь. Большое спасибо :-)

+0

Вы уверены, что каталоги 'Players' и' Players \ JOHN' существуют относительно текущего рабочего каталога? (Это может быть не тот же каталог, что и ваш исполняемый файл.) –

+0

Нет, папка JOHN - это та, которую я хочу создать. В этой папке я хочу создать папку под названием DETAILS.txt – KingJohnno

+0

Возможно, у вас нет прав доступа для ее создания? – Caesar

ответ

3

Файлы могут быть созданы только в тех каталогах, которые уже существуют. Таким образом, вам нужно заставить структуру каталогов существовать до того, как вы попытаетесь создать файл.

Не существует стандартной библиотеки библиотек C++, которая сделает это. Вы можете реализовать свою собственную функцию, чтобы сделать это достаточно легко. Разберите путь для своих компонентов каталога. Начиная с самой высокой точки в дереве, создайте каждый подкаталог по очереди.

Возможно, вы используете Windows. API Windows имеет функциональность, которая напрямую отвечает вашим потребностям. В частности, функция SHCreateDirectory. Я не знаю, готовы ли вы привязать себя к конкретному API-интерфейсу платформы - например, ваш выбор.

+0

http://stackoverflow.com/questions/9235679/create-a-directory-if-it-doesnt-exist – KingJohnno

Смежные вопросы