2014-04-25 51 views
0

爲了給出一點上下文:我正在編寫一個使用文本文件和BMP文件的程序。對於我提供的文本文件來管理它們,我使用EasyBMP進行BMP操作。 我遇到的問題是除非我提供完整路徑,否則文件將在錯誤的文件夾中創建。在錯誤的文件夾中創建的文件

實施例:

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

預期結果:640×480 BMP在我的項目文件夾中的某個地方創建的文件(C:\用戶[用戶] \文件\ C++ \ TP 1)

實際結果:640×480 BMP在Eclipse文件夾(C:\ Users [user] \ Documents \ Eclipse)中創建的文件

與我寫入磁盤的任何其他文件相同。 它曾經在一個不同的項目上工作得很好,所以我猜想有一些愚蠢的東西我錯過了某處,但我一直沒能找到解決方案。

編輯:完全相同的代碼在不同的項目上工作正常。

回答

0

如果不指定完整路徑名,則文件存儲在進程的當前文件夾中。您可以在Eclipse中更改它(判斷運行進程時是否運行哪個文件夾)。

如果你總是希望將文件存儲在EXE所在的位置,或者EXE附近,你可以自己找到文件夾(main的第一個參數是EXE文件的位置)。

0

程序會將文件寫入工作目錄。這是因爲您使用了相對路徑,並且相對路徑與工作目錄相關。

要麼在代碼中指定完整路徑,要麼在運行程序時確保工作目錄設置爲期望的值。

+0

此選項設置所需的工作目錄在哪裏? – user3571628

+0

你想在哪裏寫文件?工作目錄,或與exe文件的目錄? –

+0

顯然,我不知道的魔法字是「工作目錄」。不知道是什麼,用Google搜索,問題解決了。爲了幫助我的無知,我該如何使用exe文件寫入目錄? – user3571628

相關問題