检查项目文件夹中是否存在文件

时间:2016-02-10 11:58:20

标签: objective-c xcode file path nsfilemanager

我的项目有这样的结构:

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"];

2 个答案:

答案 0 :(得分:3)

在运行时知道这是否可用的唯一方法是使用NSBundle

NSString *path = [[NSBundle mainBundle] pathForResource:@"my_audio" ofType:@"mp3"];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:path];

fileExists中,您知道它是否可用。

如果文件已复制到软件包,请务必检查构建阶段。

答案 1 :(得分:0)

NSFileManager绝对无法访问项目文件夹。它与应用程序所在的文件夹或其访问的文档完全相关。

构建过程和应用程序的实际运行分为“开发者土地”和“用户土地”..

访问开发人员文件夹的唯一方法是使用无视沙箱环境的方法。即使苹果允许临时例外,它也不太可能继续发挥作用。

我建议共享两者的唯一方法是使用脚本在构建阶段,该脚本在两者之间共享一个公共文件夹...