Xcode c++ 无法通过代码访问文件

Xcode c++ cant access file through code

本文关键字:代码 访问 文件 c++ Xcode      更新时间:2023-10-16

我已将图像"padimage.png"添加到我的资源文件夹中,并设置了add to target并选中make copy if needed。然后在我的c ++代码中,我有以下代码来检查它是否可以访问文件

std::ifstream my_file("padimage.png");
if (my_file.good())
{
    std::cout << "could read file n";
} else {
    std::cout << "could not read file n";
}

此操作失败,表示我无法访问该文件。我已经签入了调试构建文件夹,图像位于资源文件夹下,我还尝试了文件的替代路径,例如"resources/padimage.png" || Resources/padimage.png || ../Resources/padimage.png等等。

我对 c++ 仍然相当陌生,所以我不太明白应该如何查找文件或它相对于什么路径进行搜索。我也确信这是一个非常简单的问题,但我不知何故无法解决它。

非常感谢所有的帮助。

只是为了您自己的理智,请在其他任何事情之前执行以下操作。

char wd[1024];
std::cout << getcwd(wd, sizeof(wd)) << std::endl;

您可能会对自己的位置感到惊讶,因此无法打开文件的原因。从 IDE 运行时,可以在"产品/编辑方案"下指定工作目录的位置...Xcode区域(以及其他地方)。

感谢 WhozCraig 的建议,我设法通过使用项目的根目录然后在应用程序旁边创建一个独立文件来使其工作,如下所示:

./padimage.png

然而,这并不理想。这意味着我将拥有项目之外的资源。

但是经过一些试验和错误,我设法通过使用包名称.app导航到程序包内容;

./ProjectName.app/Contents/Resources/padimage.png