有什麼方法可以在iOS上的文檔文件夾中使用NSBundle
?從文檔文件夾運行NSBundle
-1
A
回答
1
我不是很確定你在說什麼,但一般的方法,只要使用一個文件從應用程序的包是它如下複製到文檔目錄:
檢查(首次啓動,啓動或根據需要)在文檔目錄中存在該文件。
如果不存在,請將您的包中文件的「安裝」版本複製到文檔目錄中。
在一些示例代碼來講,我已經用我這樣的目的如下的方法:
- (BOOL)copyFromBundle:(NSString *)fileName {
BOOL copySucceeded = NO;
// Get our document path.
NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPath = [searchPaths objectAtIndex:0];
// Get the full path to our file.
NSString *filePath = [documentPath stringByAppendingPathComponent:fileName];
NSLog(@"copyFromBundle - checking for presence of \"%@\"...", fileName);
// Get a file manager
NSFileManager *fileManager = [NSFileManager defaultManager];
// Does the database already exist? (If not, copy it from our bundle)
if(![fileManager fileExistsAtPath:filePath]) {
// Get the bundle location
NSString *bundleDBPath = [[NSBundle mainBundle] pathForResource:fileName ofType:nil];
// Copy the DB to our document directory.
copySucceeded = [fileManager copyItemAtPath:bundleDBPath
toPath:filePath
error:nil];
if(!copySucceeded) {
NSLog(@"copyFromBundle - Unable to copy \"%@\" to document directory.", fileName);
}
else {
NSLog(@"copyFromBundle - Succesfully copied \"%@\" to document directory.", fileName);
}
}
else {
NSLog(@"copyFromBundle - \"%@\" already exists in document directory - ignoring.", fileName);
}
return copySucceeded;
}
這會在你的文檔目錄檢查指定文件的存在和複製如果它尚未存在,則從您的包中獲取該文件。
7
不知道確切的問題是什麼,但這裏是我如何訪問我的應用程序的本地文檔文件夾(這不是您的應用程序使用的存儲源的文檔文件夾,而是應用程序存儲本地資源的文檔文件夾) 例如,在我的應用我把圖片用相機,並將其存儲到應用程序的本地文件夾,而不是設備相機膠捲,所以讓我做這個圖像的數量,在viewWillAppear
方法使用:
// create the route of localDocumentsFolder
NSArray *filePaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
//first use the local documents folder
NSString *docsPath = [NSString stringWithFormat:@"%@/Documents", NSHomeDirectory()];
//then use its bundle, indicating its path
NSString *bundleRoot = [[NSBundle bundleWithPath:docsPath] bundlePath];
//then get its content
NSArray *dirContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:bundleRoot error:nil];
// this counts the total of jpg images contained in the local document folder of the app
NSArray *onlyJPGs = [dirContents filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self ENDSWITH '.JPG'"]];
// in console tell me how many jpg do I have
NSLog(@"numero de fotos en total: %i", [onlyJPGs count]);
// ---------------
如果您想知道文檔文件夾中的內容(您可以在iOS模擬器中實際瀏覽的內容)
通過〜/ YourUserName /庫/ Application Support/iPhone 模擬器/ versioOfSimulator /應用/ appFolder /文件)
你會使用NSString *bundleRoot = [[NSBundle mainBundle] bundlePath];
代替。
希望它可以幫助你,隊友!
相關問題
- 1. 從其文件夾運行exe文件
- 2. NSBundle和資源文件夾內的訪問文件夾
- 3. 無法將文件從NSBundle複製到文檔目錄
- 4. 將文件從NSBundle複製到文檔錯誤
- 5. 從NSBundle檢索文件
- 6. 運行文件夾
- 7. 從Servlet運行可執行文件夾
- 8. iphone將文件夾從文件夾複製到文檔
- 9. Webservice從App_Data文件夾打開文檔
- 10. 從db /文件夾運行knexfile.js
- 11. 從子文件夾運行create-react-app
- 12. 從另一個文件夾運行Java
- 13. Silex Micro Framework:從子文件夾運行
- 14. 從BATCH文件夾運行WebApp
- 15. 從運行jar文件夾中的資源文件夾中加載docx文件
- 16. 根據文件夾名從文檔檢索文檔
- 17. 使用NSBundle和plist從文件夾中加載圖像
- 18. iPhone/iPad的:無法從一個NSBundle複製文件夾NSDocumentDirectory
- 19. Mysql文件夾和文檔
- 20. 運行在文件夾
- 21. 運行在文件夾中
- 22. 運行在子文件夾
- 23. 無法從資源文件夾中的文件複製到文檔文件夾
- 24. 保存歸檔的文檔文件夾
- 25. Java從命令行運行:類路徑包含文件夾和子文件夾
- 26. iPhone - 從文檔文件夾執行iphone應用程序
- 27. 如何從一個文檔文件夾獲取文件到另一個文檔文件夾?
- 28. 文檔文件夾中存在文件
- 29. 從一個文件夾逐個運行所有exe文件
- 30. 從文件夾運行java class文件的問題
我不明白這個問題。你想要做什麼? – 2011-02-24 13:28:35