使用 pathForResource:ofType:inDirectory访问文件:

我有一个名为TextFiles的文件夹中添加了一个TextFiles文件,这个文件夹位于Xcode的iOS项目的Resources文件夹中。

这是我用来访问文件的代码:

 NSString* filePath = [[NSBundle mainBundle] pathForResource:@"paylines" ofType:@"txt" inDirectory:@"TextFiles"]; NSLog(@"\n\nthe string %@",filePath); 

代码打印:

 2011-06-07 14:47:16.251 slots2[708:207] the string (null) 

我也有同样的问题。 我find的解决scheme是(在xcode 4.x中):

转到:目标 – >“构build阶段” – >“复制束资源”然后在这里添加该特定的文件。 如果该文件已被添加,请将其删除并重新添加。

清理项目并运行。 有用。 🙂

当我拖入文件时,默认情况下,“添加到目标”框似乎没有勾选。 如果我不打勾,那么我有问题描述。 通过删除文件,然后将其拖回来,但确保勾选“添加到目标”来修复它。 在这里输入图像说明

以及我发现我犯的错误是我添加一个组到项目,而不是添加更多的指令真实的目录

试试这个,它为我工作。

 NSString *str=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"paylines.txt"]; 

对于模拟器

 NSURL *rtfUrl = [[NSBundle mainBundle] URLForResource:@"paylines" withExtension:@".txt"]; 

所有你需要做的是确保选中下面显示的checkbox。

在这里输入图像说明

进入“目标” – >“构build阶段”,select您的目标,select“构build阶段”选项卡,单击“添加构build阶段”,并select“添加复制文件”。 将目的地更改为“产品目录”。 将您的文件拖到“添加文件”部分。

在Mac OSX的情况下,

转到目标 – >构build阶段点击+复制新文件构build阶段select产品目录并将文件放在那里。

清理并运行该项目。

你是否试图在XCTest内部和砸你的笔记本电脑的边缘? 这是你的线程: 为什么unit testing内部的代码不能findbundle资源?

在@Neelam Verma的回答或@ dawid的回答之后,它的结果与@Neelam Verma的答案相同,区别在于@ dawid的回答是从拖放文件到Xcode项目开始的,@Neelam Verma的回答是从文件已经是Xcode项目的一部分,我仍然无法获得NSBundle.mainBundle().pathForResource("file-title", ofType:"type")来查找我的video文件。

我想也许是因为我的文件是在嵌套在Xcode项目中的组中,这是原因,所以我将video文件移动到我的Xcode项目的根目录,仍然没有运气,这是我的代码:

  guard let path = NSBundle.mainBundle().pathForResource("testVid1", ofType:"mp4") else { print("Invalid video path") return } 

最初,这是我的文件的名称: testVid1.MP4 ,将video文件重命名为testVid1.mp4解决了我的问题,因此,至lessofTypestring参数是区分大小写的。

select项目/特定文件夹 – >右键单击 – >将文件添加到项目 – >select要添加的文件。

这对我有效。