c++ - Ifstream 在子文件夹中找不到文件

标签 c++ file directory

这似乎是一个简单的问题,但即使借助 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/

相关文章:

c++ - 无法初始化 C++ 数组

java - Android 中读取文件的速度很慢

file - 当我使用 int 21h 函数时,我的 asm 代码写入垃圾字节

file - 用 Lua 编写多行文本文件

c# - 如何递增或循环遍历特定目录中的文件夹

c++ - STL vector : undefined behaviour when calling data() on a temporary?

c++ - 在 C++ 线程中,初始化引用

java - 将文件添加到 ZIP 文件

c++ - 对类静态 constexpr 结构的 undefined reference ,g++ vs clang

php - 测试一个目录是否是另一个文件夹的子目录