我的项目有这样的结构:
my_project
my_project
AppDelegate.m
AppDelegate.h
...
Audio_folder
my_audio.mp3
所以我想检查Audio_folder
中是否存在音频文件。
我可以用完整的路径来做到这一点
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:@"/Users/user/Desktop/my_project/my_project/Audio_folder/my_audio.mp3"];
但我怎样才能用
之类的东西来实现它BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:@"Audio/my_audio.mp3"];
答案 0 :(得分:3)
在运行时知道这是否可用的唯一方法是使用NSBundle。
NSString *path = [[NSBundle mainBundle] pathForResource:@"my_audio" ofType:@"mp3"];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:path];
在fileExists
中,您知道它是否可用。
如果文件已复制到软件包,请务必检查构建阶段。
答案 1 :(得分:0)
NSFileManager绝对无法访问项目文件夹。它与应用程序所在的文件夹或其访问的文档完全相关。
构建过程和应用程序的实际运行分为“开发者土地”和“用户土地”..
访问开发人员文件夹的唯一方法是使用无视沙箱环境的方法。即使苹果允许临时例外,它也不太可能继续发挥作用。
我建议共享两者的唯一方法是使用脚本在构建阶段,该脚本在两者之间共享一个公共文件夹...