假設我有一個包含在主應用程序包中的任意文件集。我想爲啓動時的文件提取URL並將其存儲在某處。這可能使用NSFileManager
?這方面的文件不清楚。在應用程序啓動時獲取包文件引用/路徑
注意:我只需要文件的URL,我不需要訪問實際的文件。
假設我有一個包含在主應用程序包中的任意文件集。我想爲啓動時的文件提取URL並將其存儲在某處。這可能使用NSFileManager
?這方面的文件不清楚。在應用程序啓動時獲取包文件引用/路徑
注意:我只需要文件的URL,我不需要訪問實際的文件。
可以使用獲取文件的URL在主束
NSString *path = [[NSBundle mainBundle] pathForResource:@"SomeFile" ofType:@"jpeg"];
NSURL *url = [NSURL fileURLWithPath:path];
你可以寫這篇文章的URL,例如,在文檔目錄的屬性列表文件:
NSString *docsDir = [NSSearchForDirectoriesInDomains(NSDocumentsDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *plistPath = [docsDir stringByAppendingPathComponent:@"Files.plist"];
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:[url absoluteString] forKey:@"SomeFile.jpeg"];
[dict writeToFile:plistPath atomically:YES];
如果你不知道該文件的名稱只是想和你以列出包中的所有文件,使用
NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[[NSBundle mainBundle] bundlePath] error:NULL];
for (NSString *fileName in files) {
NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:nil];
NSURL *url = [NSURL fileURLWithPath:path];
// do something with `url`
}
如果我不知道文件的名稱,我只想獲取所有文件? –
@AndrewLauerBarinov然後你可以閱讀NSFileManager的文檔。 (但請參閱編輯,無論如何...) – 2012-08-30 21:40:38
感謝您的額外信息! –
是的,你會得到他們的路徑:
NSString *path = [NSBundle mainBundle] pathForResource:@"file1" ofType:@"png"];
NSURL *fileURL = [NSURL fileURLWithPath:path]
// save it as any other object or in a dictionary:
[myMutableDictionary setObject:fileURL forKey:@"file1.png"];
編輯:獲得文件的完整列表,使用的NSFileManager,拿到路徑捆綁本身,然後步行每個目錄獲取文件,使得網址,並將它們保存在某個地方。因此,如何在一個目錄中執行此操作就有很多代碼。 [你應該更新你的問題是你想要什麼更具體的,這是不是在所有原先作出明確]
如果我不知道文件的名稱,我只想獲得所有文件? –
有上NSBundle
(documentation)可在10.6或iOS 4的API來直接得到NSURL
,而不是傳遞路徑NSURL
構造:
- (NSURL *)URLForResource:(NSString *)name withExtension:(NSString *)ext;
它也有采取變體subdirectory
和localizationName
,與它的-pathForResource:
相同。
什麼是「文件參考」?路徑?網址是什麼?什麼? – 2012-08-30 21:28:53
通過文件引用我的意思是文件的URL –