0

我正在尝试使用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"); 

如何使用 Windows 7 将“.txt”文件保存到特定目录?

OBS:当我使用 Windows 7 保存程序时,文件保存在:

C:\Users\Name\AppData\Local\VirtualStore\Folder1\Name.txt

4

1 回答 1

4

首先,停止使用相对路径,因为它们是相对于调用进程的当前工作目录的,该目录在进程的生命周期内会动态变化。始终使用绝对路径。使用反斜杠而不是正斜杠,并确保仅在字符串文字中转义反斜杠,例如:

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

其次,确保运行您的应用程序的用户帐户具有访问文件夹和写入文件的安全权限。Vista 和更高版本比 XP 限制更多,尤其是在启用 UAC 的情况下。许多文件夹是只读的,特别是如果您的应用程序安装在“Program Files”文件夹下。切勿写入程序的安装文件夹或其子文件夹。使用 Windows 为用户相关文件和应用程序相关文件留出的特殊文件夹。

于 2011-11-16T03:41:01.853 回答