os x应用程序无法在Resources文件夹中加载文件

悉尼

我正在尝试在osx(Lion 10.7.5)上测试库assimp。但是Demo.app找不到位于Demo.app/Contents/Resources文件夹中的模型文件。奇怪的是,我的旧演示仍然可以正常运行。这是主要代码:

bool ImportModel(const string& pFile)
{
    Assimp::Importer importer;
    const aiScene* scene = importer.ReadFile(pFile, ...);
    if(!scene)
    {
        cout<<importer.GetErrorString()<<endl;
        return false;
    }
    return true;
}

int main(void)
{
    while(ImportModel("skin.xml"));
    return 0;
}

它不断返回:无法打开文件“ skin.xml”。这是Demo.app的结构:

Contents
    Frameworks
    info.plist
    MacOS
        Demo
        libassimp.dylib
    Resources
        Demo.icns
        skin.xml -> the model file.

知道哪里可能是错的吗?谢谢你们。

gaige

在assimp的文档中,Assimp::Importer::ReadFile将路径作为第一个参数。似乎没有(至少在文档中没有)针对默认Resources文件夹路径的任何特定支持

很有可能您将不得不提供文件的完整路径,以便从那些库中正确读取文件,这意味着获取主捆绑包的资源路径,附加模型文件名,并将最终路径转换为ac。字符串(将成为std :: string)。或者,您可以获取主包的资源路径,将其转换为ac字符串,并将其附加skin.xml到该字符串

如果您使用的是Objective-C ++,这非常简单:

NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource: @"skin" ofType: @"xml"];
// now get the c string from the path
const char *cPath =[path cStringUsingEncoding: NSUTF8StringEncoding];

如果您希望继续使用C ++,则由于手动内存管理和更广泛的错误检查而有些棘手(在上述情况下,您可以只使用错误检查cPath,因为Objective-C代码将nil毫无问题地发出消息)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将下载的文件(音频、文档)自动保存到 mac os x 沙盒应用程序中的用户下载文件夹?

内部OS X应用程序更新程序-处理“签名文件夹”吗?

为什么只需要将Windows应用程序安装到OS X应用程序中却可以将其拖到文件夹中?

如何从OS X应用程序中的URL下载文件

对Mac OS应用程序中用户选择的文件夹的读写权限?

Mac OS X上的Google Drive Temp下载文件夹

没有X,没有出现在应用程序文件夹中并且拒绝丢入垃圾箱时,如何从OS X Launchpad删除应用程序?

要检查的常见Mac OS文件夹/设置(尝试摆脱讨厌的自启动应用程序时)

Emacs初始化文件无法打开加载文件OS X

Mac OS X Timing应用程序如何跟踪文件

“听” OS X应用程序文件的编写

OS X El Capitan中的“受限”文件夹/文件

修复/更正OS X主文件夹文件权限

无法在WP8.1应用程序中加载文件或程序集

OS X + Vim:在NerdTree(Vim)中打开文件夹的查找程序

Mac OS X中单个选定文件夹的快捷方式无法使用服务

Android Studio-无法锁定系统文件夹问题-MAC OS X

替换/添加到OS X中的文件夹?

OS X Finder“新文件夹”变暗

JFileChooser忽略OS X上的特殊字符文件夹

使用“ mv”或“ ditto”合并OS X中的文件夹

从 dotnet 发布输出文件夹运行应用程序时,无法加载文件或程序集 Newtonsoft.Json

复制所有文件和文件夹(不包括OS X上的Subversion文件和文件夹)

部署应用程序时无法从实例文件夹加载配置文件

无法在.NET 4 MVC 4应用程序中加载文件或程序集版本为2.0.5.0的系统

用户应用程序用户项目文件应在Mac OS X上保存在哪里?

我的OS X应用程序如何接受来自Photos.app的图片文件拖放?

检测是否从OS X上的只读文件系统启动了应用程序

在哪里存储的偏好,日志文件,缓存在Mac OS X的Java应用程序