文件未在正确的目录C ++中创建

时间:2015-08-18 06:27:43

标签: c++ file visual-studio-2012 fstream ofstream

我正在尝试使用fstream来创建文件,但我正在尝试创建的文件不会出现在.exe目录或文件目录中的任何其他位置。在我的计算机中搜索该文件后,我发现它完全是在不同的目录中创建的,即使我使用的是相对目录。

这是创建文件的代码:

ofstream file;
file.open("something.jpg", ios::out|ios::binary|ios::beg);

创建文件的目录:C:\ Users \ user-pc

项目目录:D:\ Users \ user-pc \ Documents \ Visual Studio 2012 \ Projects \ recvFile

顺便说一下,使用绝对目录可以很好地完成。这可能是项目工作目录的问题吗?

3 个答案:

答案 0 :(得分:1)

在Visual Studio中右键单击项目,单击“属性”,然后转到“配置属性”,再转到“调试”。有一行"工作目录"。您可以在那里设置工作目录。如果您需要以编程方式执行此操作,则可以使用SetCurrentDirectory

如果您需要在与.exe位置相同的目录中创建文件,则可以使用以下方法:https://stackoverflow.com/a/124901/1915854

  

使用0作为模块句柄调用GetModuleFileName()...

如果.exe安装在Program Files等共享目录中,那么在同一目录中创建文件可能需要额外的权限,这可能是个坏主意。如果.exe只是克隆到应该创建文件的目录,那么就没有这样的问题了。

答案 1 :(得分:0)

尝试添加" ../"到链接:

file.open("../something.jpg", ios::out|ios::binary|ios::beg);

答案 2 :(得分:0)

将在项目的Debug / Release文件夹中创建文件。试试Timo Rzipa的建议。