正在错误文件夹中创建的文件

时间:2014-04-25 06:14:54

标签: c++ eclipse path fstream

给出一点背景:我正在编写一个使用文本文件和BMP文件的程序。对于文本文件,我提供了一个类来管理它们,我使用EasyBMP进行BMP操作。 我遇到的问题是文件是在错误的文件夹中创建的,除非我提供完整的路径。

示例:

#include "EasyBMP.h"
int main(){
    BMP picture;
    picture.SetSize(640,480);
    picture.WriteToFile("picture.BMP");
return 0;
}

预期结果:在我的项目文件夹中的某处创建了640x480 BMP文件(C:\ Users [user] \ Documents \ C ++ \ TP 1)

实际结果:在Eclipse文件夹中创建640x480 BMP文件(C:\ Users [user] \ Documents \ Eclipse)

我写入磁盘的任何其他文件都会发生同样的情况。 它曾经在一个不同的项目上工作得很好,所以我猜测那里有一些愚蠢的东西,我在某处找不到但是我还没能找到解决方案。

编辑:完全相同的代码在不同的项目上工作正常。

2 个答案:

答案 0 :(得分:0)

如果您没有指定完整路径名,则文件将存储在进程的当前文件夹中。您可以在Eclipse中更改它(告诉您在运行进程时从哪个文件夹运行)。

如果您总是希望将文件存储在EXE所在的位置或EXE附近,您可以自己找到该文件夹​​(main的第一个参数是EXE文件的位置)。

答案 1 :(得分:0)

程序将把文件写入工作目录。那是因为您使用了相对路径,相对路径是相对于工作目录的。

在代码中指定完整路径,或者确保在运行程序时将工作目录设置为所需的值。