NSFileManager扩展

//
//  NSFileManager+File.h
//  CloudShopping
//
//  Created by ljy-335 on 14-8-4.
//  Copyright (c) 2014年 uni2uni. All rights reserved.
//

#import <Foundation/Foundation.h>

/*!
 * @brief NSFileManager关于文件操作的扩展
 * @author huangyibiao
 */
@interface NSFileManager (File)

/*!
 * @brief 判断文件是否存在于沙盒中
 * @param filePath 文件路径名
 * @return 返回YES表示存在,返回NO表示不存在
 */
- (BOOL)isFileExists:(NSString *)filePath;

/*!
 * @brief 判断文件是否超时
 * @param filePath 文件路径名
 * @param timeout 限制的超时时间,单位为秒
 * @return 返回YES表示超时,返回NO表示未超时
 */
- (BOOL)isFile:(NSString *)filePath timeout:(NSTimeInterval)timeout;

@end
//
//  NSFileManager+File.m
//  CloudShopping
//
//  Created by ljy-335 on 14-8-4.
//  Copyright (c) 2014年 uni2uni. All rights reserved.
//

#import "NSFileManager+File.h"

@implementation NSFileManager (File)

/*!
 * @brief 判断文件是否存在于沙盒中
 * @param fileName 文件路径名
 * @return 返回YES表示存在,返回NO表示不存在
 */
- (BOOL)isFileExists:(NSString *)filePath {
    NSFileManager *fileManager = [NSFileManager defaultManager];
    BOOL result = [fileManager fileExistsAtPath:filePath];

    return result;
}

/*!
 * @brief 判断文件是否超时
 * @param filePath 文件路径名
 * @param timeout 限制的超时时间,单位为秒
 * @return 返回YES表示超时,返回NO表示未超时
 */
- (BOOL)isFile:(NSString *)filePath timeout:(NSTimeInterval)timeout {
    if ([[NSFileManager defaultManager] isFileExists:filePath]) {
        NSError *error = nil;
       NSDictionary *attributes = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath
                                                                                   error:&error];
        if (error) {
            return YES;
        }
        if ([attributes isKindOfClass:[NSDictionary class]] && attributes) {
          //  NSLog(@"%@", attributes);
            NSString *createDate = [attributes objectForKey:@"NSFileModificationDate"];
            createDate = [NSString stringWithFormat:@"%@", createDate];
            if (createDate.length >= 19) {
                createDate = [createDate substringToIndex:19];
                NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
                formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";

                NSDate *sinceDate = [formatter dateFromString:createDate];
                NSTimeInterval interval = [[NSDate date] timeIntervalSinceDate:sinceDate];
                return interval <= 0;
            }
        }
    }
    return YES;
}

@end
时间: 2024-12-31 10:27:08

NSFileManager扩展的相关文章

NSString扩展

// // NSString+Common.h // CloudShopping // // Created by sixiaobo on 14-7-9. // Copyright (c) 2014年 com.Uni2uni. All rights reserved. // #import <Foundation/Foundation.h> /*! * @brief NSString 的能用扩展 */ @interface NSString (Common) // 获取Documents路径

iOS - OC NSFileManager 文件管理

前言 @interface NSFileManager : NSObject @interface NSFileHandle : NSObject <NSSecureCoding> NSFileManager 是 Foundation 框架中用来管理和操作文件.目录等文件系统相关联内容的类. 1.路径操作 // 文件管理器对象,单例类对象 NSFileManager *nfManager = [NSFileManager defaultManager]; NSURL *folderUrl =

360安全浏览器如何使用扩展

  什么是扩展程序 扩展程序是可以方便地添加到360安全浏览器中的附加特性和功能.扩展程序可让您自定义360安全浏览器的各种功能,同时可以精简浏览器,去掉其中不需要的功能. 试用扩展程序 访问 360安全浏览器的扩展中心,查找感兴趣的扩展程序.如果您找到了感兴趣的扩展程序,那就安装试用吧! 管理扩展程序 右键点击扩展程序的图标,能完成设置.停用.卸载的操作.点击工具栏上的扩展中心图标,可以对已安装的扩展进行批量管理.

360极速浏览器如何使用扩展

什么是扩展程序 扩展程序是可以方便地添加到360极速浏览器中的附加特性和功能.扩展程序可让您自定义360极速浏览器的各种功能,同时可以精简浏览器,去掉其中不需要的功能. 以下是我们喜爱扩展程序的几个原因: 获得网页的相关积分信息. 扩展程序可通过相关链接和信息改善您正在查看的网页.例如,使用选择获取地图扩展程序,您只需突出显示网页上的地址就能获取即时路线和地图链接. 及时获取通知. 某些扩展程序会在地址栏旁添加按钮,以便通知您某些活动的相关情况.例如,使用 Google Mail 检查程序可在收

iOS8新特性扩展(Extension)应用之四——自定义键盘控件

iOS8新特性扩展(Extension)应用之四--自定义键盘控件         iOS8系统的开放第三方键盘,使得用户在输入法的选择上更加自主灵活,也更加贴近不同语言的输入风格.这篇博客,将介绍如何开发一个第三方的键盘控件. 一.了解UIInputViewController类         UIInputViewController是系统扩展支持键盘扩展的一个类,通过这个类,我们可以自定义一款我们自己的键盘提供给系统使用.         首先,我们先来看一下这个类中的一些属性和方法:

基于SharpMap扩展程序开发实例

SharpMap是基于.Net平台开发的GIS地图渲染组件.在SharpMap的内部设计了基于OGC 标准的几何模型 构架,设计了IProvider策略模式的多源矢量地图数据适配器接口,地图要素渲染的底层主要通过几何变 换将Geometry转换为.Net支持的几何模型如System.Drawing.Point.System.Drawing.Rectangle. System.Drawing.Drawing2D.GraphicsPath等,然后调用System.Drawing.Graphics类的

分布式数据库——从线性扩展谈分布式JOIN

在首届阿里巴巴中间件峰会上,来自阿里巴巴DRDS团队的梦实分享了<分布式数据库--从线性扩展谈分布式JOIN>.他主要从OLTP数据库的线性扩展.水平扩容.IN查询.分布式JOIN四个方面进行了分享.在分享中,他主要通过买家与订单场景.家庭与孩子场景介绍了IN查询,通过同维度的JOIN.广播表的JOIN.Nested Loop Join详细介绍了分布式JOIN的坑与填坑.   以下内容根据直播视频整理而成.   在数据库的使用过程中,我们难免会问到这样的问题,为什么分库分表?答案是为了达到线性

支持用 CoffeeScript 调试的 Chrome 扩展

CoffeeScript 越来越流行了,coffee控门想尽一切手段鄙视js的臃肿.这个扩展就可以在console里也能使用coffee script 不会coffee,只能简单的抄这么一句测试下.. 已经实现的功能: - 使用 CoffeeScript 输入 - 格式化输出 - 自动补全 - 命令历史 安装地址:https://chrome.google.com/webstore/detail/amcoffee/eohnbihebhopoapemdbbodaiaagpogik via 谷奥

【转】Windows Shell扩展编程傻瓜手册大全:上下文菜单扩展

引用自:http://blog.163.com/yesaidu@126/blog/static/51819307200861853827582/ Part I: A step-by-step tutorial on writing shell extensions 第一节:Windows shell扩展初步:上下文菜单扩展   作者:Michael Dunn 译者:yesaidu   源代码下载:1       2   目录 ● README ● 系列绪言 ● 第一部分绪言 ● 从AppWiza