1。應用間資源共享,分享來的文檔存在沙盒的Documents/Inbox路徑下:
(lldb) po localPath
/var/mobile/Containers/Data/Application/151DF2B1-576C-42B5- 8F5D-051132FF2494/Documents/Inbox/?? Microsoft Word ?? (2)-1.docx
這個文件是存在的,但是用我想計算文檔大小,用以下方法
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:localPath]) {
size = [[fileManager attributesOfItemAtPath:localPath error:nil] fileSize];
}
總是回傳NO,檔案不存在,想問下這條路徑是不是有問題,不能這麼判斷?
若路徑改為/var/mobile/Containers/Data/Application/151DF2B1-576C-42B5-8F5D-051132FF2494/Documents/Inbox ,就能偵測到有檔案
#線上等~~~
可能問題描述不是很清楚,有時間的可以看下這個http://blog.csdn.net/zhonggaorong/article/details/51832089,我做的就是讓第三方app點擊“用其他應用程式開啟”,底部彈出的控制台裡能有自己的app,然後會跳到自己app內,回調openUrl:那個方法
PHP中文网2017-05-24 11:33:54
Application/ 後面那一串,應用每次運行都會變的,你不應該把這個路徑分享出去,而且一個應用也不能訪問到另一個應用的文件目錄。
根據iOS App讓自己的應用程式在其他應用程式中開啟清單中顯示、iOS把自己的應用程式加入」活動「、將PDF檔案Open In MyApp
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
if (url != nil) {
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:url.path]) {
unsigned long long size = [[fileManager attributesOfItemAtPath:url.path error:nil] fileSize];
NSLog(@"size:%llu", size);
}
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:data];
NSLog(@"%@", image);
}
return YES;
}
某草草2017-05-24 11:33:54
路徑中的字串是每次安裝應用時,系統分配的,只要不被卸載,這個路徑是不變的
2.我懷疑是路徑名含非法字符導致的問題
3.DOCUMENT目錄不是sandbox,就是為分享和雲端備份,還有iTunes客戶端用的
淡淡烟草味2017-05-24 11:33:54
iOS的app都是沙盒,只能存取自己app下的目錄。你的app這一串151DF2B1-576C-42B5-8F5D-051132FF2494是會改變的。所以要透過相對路徑獲取。參考碼如下:
NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
// 这个documentDirectory就是你的/var/mobile/Containers/Data/Application/151DF2B1-576C-42B5-8F5D-051132FF2494/Documents/目录了
NSString *documentDirectory = [pathArray firstObject];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *localPath = [documentDirectory stringByAppendingPathComponent:@"/Inbox/%3F%3F%20Microsoft%20Word%20%3F%3F%20(2)-1.docx"];
if ([fileManager fileExistsAtPath:localPath]) {
size = [[fileManager attributesOfItemAtPath:localPath error:nil] fileSize];
}