iTunes文件共享

在iTunes中有一个文件共享的功能,我们可以在文件共享中选择对应的APP并向其中导入文件,比如我们可以向暴风影音中导入自己在电脑上下载的电影,然后打开暴风影音的本地视频,即可看到自己导入的电影并观看。

iTunes文件共享_第1张图片
暴风影音文件共享

要说明的是:上图中除了三部电影以外的文件均为APP存储在此处的文件,这些文件或为关键性数据,或为APP的数据库表,或为重要的plist文件等,总之这里存储的文件会通过Wi-Fi每天自动备份(大文件会延长备份时间,并且小号用户的可用iCloud空间)。

iTunes的共享功能实现了电脑与手机APP之间文件传输功能,在开发APP的过程中究竟该怎么实现改功能呢,下面来说一下具体的实现。
在这个功能的实现中,用于传输的文件最终的存储位置为APP沙盒中的documents文件夹下,所以,知道了文件存储的位置,就能够获取到通过iTunes传输的文件了。

实现过程:

1. 在应用程序的Info.plist文件中添加UIFileSharingEnabled键,并将键值设置为YES。
iTunes文件共享_第2张图片
设置Info.plist

这时候在真机上运行并查看iTunes就可以发现,新的APP就可以实现文件共享了。


iTunes文件共享_第3张图片
效果
2. 利用UITableView来显示共享传输的文件
// 获取沙盒中所有文件
    NSFileManager *fileManager = [NSFileManager defaultManager];
    // 在这里获取应用程序Documents文件夹里的文件及文件夹列表
    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentDir = [documentPaths objectAtIndex:0];
    NSError *error = nil;
    NSArray *fileList = [[NSArray alloc] init];
    // fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组
    fileList = [fileManager contentsOfDirectoryAtPath:documentDir error:&error];
    
    self.dirArray = [[NSMutableArray alloc] init];
    for (NSString *fileName in fileList) {
        [self.dirArray addObject:fileName];
    }
    [self.tableV reloadData];

这样就可以展示沙盒中documents文件夹下的所有文件了,之后就根据具体的需求来判定问价类型并加以展示就OK了。

你可能感兴趣的:(iTunes文件共享)