假設我正在編寫一個庫或一組工具集mytool
,其中定義了其他人可以使用的類MyTool
。假設我有一個目錄樹是這樣的:如何在包含的C++源代碼中編寫外部文件的路徑
project
| - program1
| - main1.cpp
...
| - mytool
| - mytool.h
| - mytool.cpp
| - data.txt
在
tool1.cpp
我用的是外部的二進制大文件data.dat
:
ifsteam f("data.txt");
的main1.cpp
使用mytool,但如果mytool.(s)o
與main1.o
程序鏈接可以」 t找到data.dat
,對於這種情況,我需要將上一行更改爲:
ifstream f("../mytool/data.txt");
,但我不知道其他人把mytool
例如,他們可以有不同的目錄樹:(?我說的對)
project
| - program1
| - main1.cpp
| - mytool
| - tool1.h
| - tool2.cpp
| - data.dat
另外的路徑取決於執行程序的地方。
我可以想象的唯一解決方案是傳遞給類構造器MyTool
data.dat
的路徑,但我想隱藏該文件供用戶使用。
考慮使用'boost :: filesystem' – AJG85 2011-02-23 18:33:40