这似乎是一个简单的问题,但即使在互联网的帮助下,我也无法解决这个问题。
所以基本上,因为我的项目在文件上变得相当大,我想通过创建子文件夹来清理工作目录。所以我感动了着色器文件到Ressources / Shaders /。
现在我只想像往常一样用新路径加载它们,但我总是收到错误。
ifstream fin("Ressources/Shaders/texture.vs");
不起作用。以及
.\\Ressources\\Shaders\\textures.vs
./Ressources/Shaders/textures.vs
/Ressources/Shaders/textures.vs
\\Ressources\\Shaders\\textures.vs
Ressources/Shaders/textures.vs
Ressources\\Shaders\\textures.vs
我也试过没有大写字母。 而
"texture.vs"
当它仍然在工作目录中时工作。
我感谢任何提示。
答案 0 :(得分:1)
在Visual Studio中,您可以检查当前工作目录是什么(此路径必须与您尝试打开的文件的路径匹配):
char * dir = getcwd(NULL, 0);
cout << dir << endl;
然后你可以通过尝试打开它来检查你的文件是否存在(大小写无关紧要):
ifstream fin("Ressources\\Shaders\\texture.vs");
if (fin)
cout << "File Exists" << endl;
else
cout << "File Doesn't Exist" << endl;
如果你的路径是正确的,这应该有效。
如果您想查看实际访问的路径,可以执行以下操作:
char * dir = getcwd(NULL, 0);
printf("%s\\Ressources\\Shaders\\texture.vs", dir);