FileManager

一个好久没碰的点,正巧赶上一个第三方服务的坑:

视频文件的网络地址是直接的下载链接,无法边缓存边播,只好用其服务下载到本地之后,找到其路径进行移动以及重命名。
既然移动了位置并且进行了重命名,那么,就破坏了原本封装好的缓存机制,需要自己判断是否已经存在于本地(未下载?被清理了缓存?)等等。

思路如下:
下载前查看自己移动后的路径下是否存在该文件,若无则进行下载。
下载完成后,判断是否有该用户对应的文件夹(每账号一个文件夹,简单的防重),若无则创建,确保有该文件夹之后进行remove。

moveItemAtPath 会把当前路径下文件移动到指定位置,并修改文件名和后缀为新地址指定的文件名和后缀。

当然,修改后缀的操作切记要保证不损坏源文件。

+ (NSString *)getRCVideoFileDirectory{NSString *defaultDocuments = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@/", [NSString userId]];NSFileManager *fm = [NSFileManager defaultManager];BOOL isDir;BOOL isHave = [fm fileExistsAtPath:defaultDocuments isDirectory:&isDir];if (isDir && isHave) {return defaultDocuments;}else{BOOL b_s = [fm createDirectoryAtPath:defaultDocuments withIntermediateDirectories:YES attributes:nil error:nil];if (b_s) {return defaultDocuments;}}return @"";
}+ (NSString *)getDownloadVideoFilePathWith:(long)msgId videoName:(NSString *)videoName{NSString *videoPath = [NSString stringWithFormat:@"%@%ld_%@",[YTRCFileManager getRCVideoFileDirectory], msgId, videoName];return [[NSFileManager defaultManager] fileExistsAtPath:videoPath] ? videoPath : @"";
}+ (NSString *)renameRCSightMessageWithVideoName:(NSString *)videoName withMessageId:(long)msgId withDownloadVideoPath:(NSString *)d_vp{NSFileManager *fm = [NSFileManager defaultManager];NSString *newRCVideoPath = [NSString stringWithFormat:@"%@%ld_%@",[YTRCFileManager getRCVideoFileDirectory], msgId, videoName];if ([fm fileExistsAtPath:d_vp]) {NSError *err = nil;BOOL b_success = [fm moveItemAtPath:d_vp toPath:newRCVideoPath error:&err];if (b_success) {return newRCVideoPath;}else{LYLog(@"追加后缀时出错%@",err.localizedDescription);}}else{LYLog(@"文件不纯在\n");}return @"";
}

最后:
再简单的东西久了不用也会生疏乃至忘记,权当做笔记与回顾吧!

filemanager简单应用相关推荐

  1. Filemanager 的使用

    filemanager的使用包括: 1.创建文件夹 2.删除文件夹 3.写入文件 4.复制文件 5.移动文件 6.删除文件​ 一.创建文件夹​ 首先宏的定义一个字符串作为地址的​来获取当前的docum ...

  2. VC开发多语言界面支持的简单方法

    VC开发多语言界面支持的简单方法 作者:成晓旭 (需要完整源代码请留言) 最近在做一个小程序,要求实现对多语言界面显示支持功能,并且,界面显示内容用户能够自己设置. 初步设计用INI文件来配置显示内容 ...

  3. 简单java在线测评程序

    简单java程序在线测评程序 一.前言 大家过年好!今年的第一篇博客啊!家里没有网,到处蹭无线!日子过得真纠结!因为毕设的需求,简单写了一个java程序在线测评程序,当然也可以在本地测试. 二.思路 ...

  4. FileManager 文件管理器

    1.获得沙盒根目录 NSString *homePath = NSHomeDirectory(); 2.获取Documents目录路径 方法一: NSString *documentsPath =[N ...

  5. beta应用程序ios_通过构建简单的食谱应用程序来了解iOS最佳做法

    beta应用程序ios by Khoa Pham 通过Khoa Pham 通过构建简单的食谱应用程序来了解iOS最佳做法 (Learn iOS best practices by building a ...

  6. 单文件图片管理php,PHP照片图片管理器源码,单文件PHP照片/图片文件管理源码FileManager...

    PHP照片图片管理器源码,单文件PHP照片/图片文件管理源码FileManager. 如果你有NAS,想要远程管理自己的照片,那本文非常适合你.只有一个单文件PHP管理你自己的照片,还可以设置个性登录 ...

  7. 安卓打开java文件管理器_Android开发之简单文件管理器实现方法

    本文实例讲述了Android开发之简单文件管理器实现方法.分享给大家供大家参考,具体如下: 这里运用Java I/O.ListActivity.Dialog.Bitmap等实现简单文件管理器,可以查看 ...

  8. Swift 3 :基于 AVAudioPlayer 的简单音乐播放器

    2017.05.22 17:46* 字数 1585 阅读 5095评论 0喜欢 8赞赏 2 学习ios以来差不多接近两个月了,作为一个刚入行的菜鸡终于鼓起勇气写博客并发布出来,本周课程讲到了ios多媒 ...

  9. 恶意上传文件漏洞/cf_scripts/scripts/ajax/ckeditor/plugins/filemanager/upload.cfm

    /cf_scripts/scripts/ajax/ckeditor/plugins/filemanager/upload.cfm 可以通过一个简单的HTTP POST请求到upload.cfm文件进行 ...

最新文章

  1. mysq改变字段类型
  2. 【Linux】17.Ubuntu16.04 系统添加网关和DNS的两种方式
  3. WPF 中如何使用第三方控件 ,可以使用WindowsFormsHost 类
  4. 初识vue之axios的封装
  5. Jupyter Notebook——如何显示目录的导航栏(安装 Jupyter Notebook extension)
  6. delphi 字符串占用空间_字符串在Python内部是如何省内存的
  7. 人工智能目标检测模型总结(三)——yolov1模型(1)
  8. int 转 const char*
  9. 聊聊、Spring WebApplicationInitializer
  10. java 新增的方法外部调用提示不存在_Java面试简答题(一)
  11. c++之static的一些用法
  12. 解决.net core 读取json文件中文乱码的问题
  13. 主管已不安排代码工作,自己要明白问题所在
  14. Java程序设计(面向对象)- 基本概念
  15. python3.6中文版下载-Python3.6.6官方版
  16. c#万能视频播放器(附代码)
  17. vivado仿真时候报错Common 17-39
  18. 知识图谱学习(二):电商知识图谱
  19. 非典型文字描边效果的实现方法
  20. P2918 [USACO08NOV]Buying Hay S(买干草)(ssl 2895)

热门文章

  1. SpringBoot(38) 整合 MongoDB
  2. 刚才灵光一闪,修改了一下云的算法。云的质感提高了,而且解决了以前的象素感。...
  3. for 循环 打印1~100之间所有是9的倍数的整数,统计个数 及 总和
  4. android 播放网络摄像头,如何将您的Android用作网络摄像头
  5. 我学计算机课的方法作文,我的学习小妙招作文3篇
  6. 把人民币转化成大写金额
  7. 「PS-CC2019新版教程」仿制图章工具,仿造一个你
  8. Java在线音乐播放系统的设计与实现
  9. 苏州大学计算机考研有学硕吗,2021年苏州大学软件工程(083500)硕士研究生招生信息_考研招生计划和招生人数 - 学途吧...
  10. 为什么Rust这么受欢迎?