filemanager

[非凡程序员]文件管理 NSFileManager NSFileHandle

前提是你 提交于 2020-03-02 03:00:32
NSFileManager 主要用于文件 NSFileHandle 主要用于文件内容 在终端输入UNIX命令 cd 切换目录 touch 创建文件 mkdir 创建目录 clear 清屏 ls 查看当前目录下的所有文件 ls -l 查看当前目录下所有文件的属性(只读、只写、可读可写) 更改一个文件的属性: chmod 777 文件名.文件类型 (最大权限) NSFileManager 创建文件(有的话可以不用创建) 关键字:createFileAtPath: [fileManager createFileAtPath:<#(NSString *)#> contents:<#(NSData *)#> attributes:<#(NSDictionary *)#>] 第一个参数是创建文件的路径地址 第二个参数是文件内容的名字 第三个参数是nil 创建目录 关键字:createDirectoryAtPath: [fileManager createDirectoryAtPath:<#(NSString *)#> withIntermediateDirectories:<#(BOOL)#> attributes:<#(NSDictionary *)#> error:<#(NSError *__autoreleasing *)#>] 第一个参数是创建目录的路径地址 第二个参数是BOOL类型的

iOS开发-清理缓存功能的实现

做~自己de王妃 提交于 2019-12-29 12:06:54
移动应用在处理网络资源时,一般都会做离线缓存处理,其中以图片缓存最为典型,其中很流行的离线缓存框架为SDWebImage。 但是,离线缓存会占用手机存储空间,所以缓存清理功能基本成为资讯、购物、阅读类app的标配功能。 今天介绍的离线缓存功能的实现,主要分为缓存文件大小的获取、删除缓存文件的实现。 获取缓存文件的大小 由于缓存文件存在沙箱中,我们可以通过NSFileManager API来实现对缓存文件大小的计算。 计算单个文件大小 +(float)fileSizeAtPath:(NSString *)path{ NSFileManager *fileManager=[NSFileManager defaultManager]; if([fileManager fileExistsAtPath:path]){ long long size=[fileManager attributesOfItemAtPath:path error:nil].fileSize; return size/1024.0/1024.0; } return 0; } 计算目录大小 +(float)folderSizeAtPath:(NSString *)path{ NSFileManager *fileManager=[NSFileManager defaultManager]; float

12道Java算法与编程面试题

老子叫甜甜 提交于 2019-12-15 17:57:45
自己整理的面试题,希望可以帮到大家,需要更多资料的可以私信我哦,大家一起学习进步! 12道Java算法与编程面试题 算法与编程 1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔。 答: package cn.itcast; import java.io.File; import java.io.FileReader; import java.io.FileWriter; public class MainClass{ public static void main(String[] args) throws Exception{ FileManager a = new FileManager(“a.txt”,new char[]{’\n’}); FileManager b = new FileManager(“b.txt”,new char[]{’\n’,’ '}); FileWriter c = new FileWriter(“c.txt”); String aWord = null; String bWord = null; while((aWord = a.nextWord()) !=null ){ c.write(aWord + “\n”); bWord =

Python核心技术与实战——二一|巧用上下文管理器和with语句精简代码

本秂侑毒 提交于 2019-12-06 15:23:38
我们在Python中对于with的语句应该是不陌生的,特别是在文件的输入输出操作中,那在具体的使用过程中,是有什么引伸的含义呢?与之密切相关的上下文管理器(context manager)又是什么呢? 什么是上下文管理器 在任何一种编程语言里,文件的输入输出、数据库的建立连接和断开等操作,都是很常见的资源管理操作。但是资源是有限的,在写程序的时候,我们必须保证这些资源在使用后得到释放,不然就容易造成资源泄漏,轻者系统处理缓慢,重则系统崩溃。 我们看一个例子: for i in range(100000000): f = open('test.txt','w') f.write('hello') 我们在循环里打开了100000000个文件,但是在使用完毕后没有进行关闭操作,一运行代码,就报错了。 这就是一个典型的资源泄漏的案例,因为程序中同时打开了太多的文件,占用了太多的资源,造成崩溃。 为了解决这个问题,不同的编程语言都引入了不同的机制,在Python中,对应的解决方法就是上下文管理器(context manager)。上下文管理器能够自动分配资源并释放资源,其中最典型的应用就是with语句,所以上面的代码应该用这种方式来写 for x in range(100000000): with open('test.txt','w') as f: f.write('hello world

如何使用dbus-send

我只是一个虾纸丫 提交于 2019-12-06 08:08:55
通过Dbus命令行的方法,可以调用程序中的某一个函数: 如下: run-standalone.sh dbus-send --print-reply / --type=method_call --dest=com.nokia.hello_world_app / /com/nokia/hello_world_app com.nokia.hello_world_app.hello_world_dialog_show 这句话的意思是: 调用服务名字(/usr/share/dbus-1/service/里面相应的service文件):com.nokia.hello_world_app 调用的服务名字下面的一个对象为:/com/nokia/hello_world_app 调用该对象接口(com.nokia.hello_world_app)下面的一个函数(hello_world_dialog_show),这个函数没有参数,在源代码里面可以看到这个函数的定义。如果有参数的话,如下类似的调用: run-standalone.sh dbus-send --print-reply / --type=method_call --dest=org.freedesktop.Notifications / /org/freedesktop/Notifications org.freedesktop

iOS开发一些细节

和自甴很熟 提交于 2019-12-04 15:25:46
block 的注意事项 使用 copy 修饰属性 想不循环应用,那么在 block 外面这样声明 __weak __typeof(self)weakSelf = self; 接着,在 block 里面这样 __strong __typeof(weakSelf)strongSelf = weakSelf; 这样既防止循环应用,又避免 block 内部 self 会无效的可能 AFNetworking 里面这样使用的很多 UITableView 的优化 最基本的,cell 重用机制,如果这个都不知道的话,那可以去撞墙了。。。 异步加载数据,这个也是很基本的 自动载入更新数据,比如每次载入20条信息,然后在滚动到最后5条信息,就加载更多的信息 图片下载完成以后,判断 cell 如果是可见的,那么就需要更新图像 GCD 异步请求,我只认准 GCD | GCD异步,你值得拥有 (广告先走一波) 网络请求放在子线程,UI 只能在主线程更新 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) { // 处理各种耗时间的事情,比如网络请求数据,天知道要什么时候才能结束 dispatch_async(dispatch_get_main_queue(), ^(void) { //

update progress bar during copy file with NSFileManager

匿名 (未验证) 提交于 2019-12-03 10:24:21
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 由 翻译 强力驱动 问题: I copy files then my application is finish launching from resource to caches directory. but I want to update my progress bar during copying the files. I copy the file with the code below: -( BOOL ) copyDirectory :( NSString *) source toDirectory :( NSString *) targat { BOOL retVal = YES ; NSFileManager * fileManager = [[ NSFileManager alloc ] init ]; NSError * error ; if ([ fileManager fileExistsAtPath : targat ] == YES ) { NSError * error = nil ; [ fileManager removeItemAtPath : targat error :& error ]; } if (![ fileManager

The operation couldn’t be completed. (Cocoa error -1.) - PHPhotoLibrary

匿名 (未验证) 提交于 2019-12-03 01:38:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Hi I am trying to save a downloaded mp4 file to my gallery. Downloading the url by using , downloadTask in func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL){ } I am getting the url file:///private/var/mobile/Containers/Data/Application/8D761DFE-C050-426D-B91C-61DE441FB496/Library/Caches/com.apple.nsurlsessiond/Downloads/com.te.dn/CFNetworkDownload_KFSYSW.tmp I am creating a path by using, let path = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory

iOS - 清理缓存

匿名 (未验证) 提交于 2019-12-03 00:27:02
// 显示缓存大小 func fileSizeOfCache()-> Int { // 1. 取出cache文件夹目录 缓存文件都在这个目录下 let cachePath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, FileManager.SearchPathDomainMask.userDomainMask, true ).first // 2. 取出文件夹下所有文件数组 let fileArr = FileManager. default .subpaths(atPath: cachePath!) // 3. 快速枚举出所有文件名 计算文件大小, 单位是字节 var size = 0 for file in fileArr! { // 3.1 把文件名拼接到路径中 let path = cachePath! + "/\(file)" // 3.2 取出文件属性 let floder = try ! FileManager. default .attributesOfItem(atPath: path) // 3.3 用元组取出文件大小属性 for (abc, bcd) in floder { // 累加文件大小 if abc ==

FEL,项目实装记录

匿名 (未验证) 提交于 2019-12-02 23:57:01
FEL,即Fast EL ,版本0.8,具体内容我就不贴了,自行百度 实装遇到的问题: Spring Boot 打包后无法进行表达式编译. 根据百度以及源码,确定这东西是在用JavaCompiler将表达式编译成java代码. 打包后报错的内容是类找不到. 首先确定了compiler找到了(自行打断点) 然后问题定位到了Spring Boot特殊的打包机制下没办法使用默认的ClassLoader和FileManager 故覆盖FEL的FelCompiler16类, 将classLoader替换成 ApplicationContextHelper.getContext().getClassLoader() 将standardFileManager替换成 自制 FileManager 自制 FileManager修改: 参考 http://atamur.blogspot.com/2009/10/using-built-in-javacompiler-with-custom.html (需爬梯子) 在该文提供的源码基础上注意修改两部分 1.Manager中返回UnSupportedOpreation的方法全部代理standardFileManager方法(共6个) 2.Finder中processJar方法修改javaUri的取值逻辑如下,以支持多层jar包 1 private List