2012-02-02 59 views
0

我在我的xCode項目中有一個圖像組。我試圖從該文件夾內的所有文件到我的應用程序。NSFileManager contentsOfDirectoryPath返回空

NSFileManager *fm = [NSFileManager defaultManager]; 
    NSArray *dirContents = [fm contentsOfDirectoryAtPath:@"/Images/" error:nil]; 

上面的代碼總是返回一個空數組。我在xCode 4.2中通過右鍵單擊然後添加了「新組」。

+1

組=文件夾 – lawicko 2012-02-02 12:08:43

+0

這我知道,但Xcode中不允許u到添加文件夾。我如何添加文件夾而不是邏輯組。 – azamsharp 2012-02-02 12:10:16

回答

2

您使用的路徑可能不是正確的路徑。 /Images/將引用您的沙箱根目錄中的圖像。如果文件夾中的圖像作爲資源添加到項目中,它們將存儲在應用程序的資源目錄中,甚至可能不在Images目錄中。

您還想閱讀錯誤以查看出了什麼問題。這就是它是什麼:

NSErorr *error = nil; 
NSArray *dirContents = [fm contentsOfDirectoryAtPath:@"/Images/" error:&error]; 
if (!dirContents) { 
    // inspect error 
} 

使用-[NSBundle resourcePath]到你的應用程序資源目錄的路徑。

瞭解您的項目結構不等於您的資源在您的應用程序中最終的位置。資源全部使用目標 Copy Bundle Resources buid階段複製到資源目錄。

如果你真的想添加某些文件在不同的目錄中的資源目錄中添加一個新的Copy Files階段,隨着Resources目的地和您的文件夾命名Subpath,像Images

然後你可以遍歷使用文件管理器,你會得到使用路徑這些圖片:

[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Images"]; 
+0

是的圖像文件夾位於資源目​​錄中。我怎麼知道它是一個目錄還是一個組,因爲所有的東西都是黃色的。在以前的xCode版本中,組被分類爲藍色文件夾。 – azamsharp 2012-02-02 12:12:02

+2

瞭解項目導航器中的佈局不是您的圖像最終會出現在應用程序中的方式。您的目標中的「複製包資源」階段將所有圖像文件複製到應用程序中的資源目錄中,而不管項目導航器中的組或目錄。看到我更新的答案。 – 2012-02-02 12:18:14

+0

感謝您的詳細解釋! – azamsharp 2012-02-02 12:24:44