这似乎是一个简单的问题,但即使借助 Internet,我也无法弄清楚。
所以基本上,因为我的项目文件变得相当大,我想通过创建子文件夹来清理工作目录。所以我搬家了着色器文件到 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"
当它仍在工作目录中时工作。
我很感激任何提示。
最佳答案
在 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);
关于c++ - Ifstream 在子文件夹中找不到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33783730/