ios端app讀取iphone檔案(通過itunes實現)

weixin_34321977發表於2018-03-06

2018年3月6日
app共享屬性開啟後,用itunes開啟,會在檔案共享選單下面顯示。


3003454-d5d847d889425736.png
image.png

一.實現:ios端app由於採用的是沙盒機制,預設是不支援訪問程式外的檔案(聯絡方式和相簿除外,這些訪問應該是蘋果底層框架實現的)

1.如果需要實現檔案共享,app端要開啟itunes檔案共享配置
3003454-f4b3e18ca60671eb.png
image.png

2.相關測樣程式碼

//讀取沙盒檔案
- (IBAction)readFileInDocumentDir:(id)sender {

    NSString *docsDir = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
    NSDirectoryEnumerator *dirEnum = [[NSFileManager defaultManager] enumeratorAtPath:docsDir];
    
    NSString *fileName;
    
    while (fileName = [dirEnum nextObject]) {
        NSLog(@"fielName : %@" , fileName);
        NSLog(@"filePath : %@" , [docsDir stringByAppendingPathComponent:fileName]) ;
    }
}

//沙盒路徑下建立檔案,便於從itunes軟體裡面匯出
- (IBAction)createImgFileToDoucument:(id)sender {
    
    NSString *docsDir = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
    NSString *imageFilePath = [docsDir stringByAppendingPathComponent:@"testImage.png"] ;
    UIImage *image = [self generateImage];
    
    [[NSFileManager defaultManager] createFileAtPath:imageFilePath contents:UIImagePNGRepresentation(image) attributes:nil] ;
}

// 建立簡單圖片
- (UIImage*)generateImage{
    
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(320, 200), NO, 0.0) ;
    CGContextRef ctx = UIGraphicsGetCurrentContext() ;
    CGRect imageRect = CGRectMake(0.0, 0.0, 320, 200) ;
    [[UIColor redColor] setFill] ;
    CGContextFillRect(ctx, imageRect) ;
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext() ;
    UIGraphicsEndImageContext() ;
    
    return image ;
}

二、驗證
1.第一步,用itunes開啟,拖入一張圖片到該app


3003454-7856aa7d0883c620.png
image.png

2.點選app內讀取檔案按鈕,看是否有日誌輸出
3003454-981c06fa9086696f.png
image.png

3.點選建立檔案後,在用itunes工具將剛剛建立的檔案拖出即可。
3003454-b1886b355d4f785d.png
image.png

3003454-d42d4ee2ede96b65.png
image.png

如果您發現本文對你有所幫助,如果您認為其他人也可能受益,請把它分享出去。

相關文章