Сохранение «.txt» в определенный каталог с использованием Windows XP и 7 - PullRequest
0 голосов
/ 16 ноября 2011

Я пытаюсь сохранить текстовый файл в определенном каталоге, используя ofstream (C ++ Builder). У меня проблемы с Windows 7.

// Works fine at Windows XP and Windows 7
std::ofstream file1("Name.txt"); 

// Works fine at Windows XP but not at Windows 7
std::ofstream file1("Folder1/Name.txt"); 

// Works fine at Windows XP but not at Windows 7
std::ofstream file1("Folder1\\Name.txt"); 

Как сохранить файл ".txt" в определенном каталоге с помощью Windows 7?

OBS: Когда я сохраняю программу с помощью Windows 7, файл сохраняется в:

C: \ Users \ Имя \ AppData \ Local \ VirtualStore \ Folder1 \ name.txt

1 Ответ

4 голосов
/ 16 ноября 2011

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

std::ofstream file1("C:\\Folder1\\Name.txt"); 

Во-вторых, убедитесь, что у учетной записи пользователя, на которой запущено ваше приложение, есть права безопасности для доступа к папке и записи файла. Vista и более поздние версии гораздо более строгие, чем XP, особенно если включен UAC. Многие папки доступны только для чтения, особенно если ваше приложение установлено в папке «Program Files». Никогда не пишите в папку установки вашей программы или ее подпапку. Используйте специальные папки, которые Windows устанавливает для файлов, связанных с пользователями и приложениями.

...