app应用文件共享

众所周知,iOS11之前的版本我们无法看到应用里边的任何文件,这主要是由于iOS的沙盒机制导致的。在我们应用的沙盒里边,有三个文件夹供我们使用来存储文件。分别是DocumentsLibrarytmp

  • Documents 您应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据。该路径可通过配置实现iTunes共享文件。可被iTunes备份。

  • Library Preferences 目录:包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好. Caches 目录:用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。 可创建子文件夹。可以用来放置您希望被备份但不希望被用户看到的数据。该路径下的文件夹,除Caches以外,都会被iTunes备份。

  • tmp 这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。该路径下的文件不会被iTunes备份。

不过由于iOS11系统中增加了一个Files的应用,导致DocumentsLibrary有些细微的变化。

Files 是什么

Files 可以集中管理iOS上应用内创建的文件,以及各个云盘服务中保存的文件。

Files使用

Files会自动整合应用内公开的所有文件,其实就是Documents文件夹中所有的文件。但是有时候我们存储的用户的数据不想让用户看到,这时应该怎么办呢?这时候我们可以将数据存储到ApplicationSupport文件夹。这个文件夹与Documents基本一样,除了一个能被用户看到,一个是隐藏的。

实践

我们新建一个工程,然后在Info.plist中增加Application supports iTunes file sharing和Supports opening documents in place这两个选项,并且设置为YES

1519629565974.jpg

Application supports iTunes file sharing 可以通过iTunes操作手机上APP的Documents中的内容,实现了文件的共享

加上了这两个值之后,此时应用的Documents文件夹中的内容就可以通过Files应用看到了。

WechatIMG31.jpeg WechatIMG32.jpeg

设置Documents或Library文件夹下的文件不被备份至iCloud

- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL {     assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);     NSError *error = nil;     BOOL success = [URL setResourceValue:[NSNumber numberWithBool: YES]                                   forKey: NSURLIsExcludedFromBackupKey error: &error];     if(!success){         NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);     }     return success; }

检查可用空间大小

主要用于当我们下载某个文件到手机的时候,如果此时手机的存储空间不够用,可以先提示用户。否则不会下载,增加用户的体验

NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:NSTemporaryDirectory()]; NSError *error = nil; NSDictionary *results = [fileURL resourceValuesForKeys:@[NSURLVolumeAvailableCapacityForImportantUsageKey] error:&error]; if (!results) {     NSLog(@"Error retrieving resource keys: %@
%@", [error localizedDescription], [error userInfo]);     abort(); } NSLog(@"Available capacity for important usage: %@", results);
  • NSURLVolumeAvailableCapacityKey 获取到整个手机剩余的可用空间

  • NSURLVolumeTotalCapacityKey 获取到整个手机的存储空间,比如32G的手机获取的数据时32G

  • NSURLVolumeAvailableCapacityForImportantUsageKey和NSURLVolumeAvailableCapacityForOpportunisticUsageKey 第一个获取的空间比第二个获取到的大。具体怎么计算的不知道,NSURLVolumeAvailableCapacityForImportantUsageKey与NSURLVolumeAvailableCapacityKey获取的值比较接近;NSURLVolumeAvailableCapacityForOpportunisticUsageKey获取到的值比NSURLVolumeAvailableCapacityKey小一些。作者猜想可能这几个枚举与沙河里边的文件夹相对应吧。(如果有知道具体怎么回事的可以留言哦)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
局域网文件共享app是一种可以在局域网内实现文件共享应用程序,它可以在不同的操作系统和平台上运行。这种app可以方便地将文件传输和共享的功能扩展到局域网内的各个设备和用户之间。 局域网文件共享app可以通过创建共享文件夹或者通过P2P技术实现文件的传输。当用户需要共享文件时,他们可以将文件放入共享文件夹中,然后其他设备上的用户可以通过app找到该共享文件夹,并将文件下载到自己的设备上。这样,用户可以快速、方便地共享文件,无需通过其他传输方式如U盘或者电子邮件。 这种app的全平台特性意味着它可以运行在不同的操作系统上,如Windows、Mac、Linux等。无论用户使用哪种平台,都可以通过安装和使用这个app来实现文件共享。这给用户带来了极大的便利,使得不同平台的用户之间可以更加轻松地共享文件。 局域网文件共享app还可以提供一些额外功能,如对文件的权限控制,允许用户设定只有特定的人员才能访问或编辑文件,增加了文件共享的安全性。同时,这种app通常还会提供文件的快速搜索功能,让用户可以方便地找到自己需要的文件。 总之,局域网文件共享app的全平台特性使得它成为一个非常实用的应用程序,可以在局域网内实现快速、方便的文件共享,提高工作效率和团队协作能力。无论是在家庭、办公室还是学校等场景中,这种app都能为用户带来很多便利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值