iOS-沙箱盒子代码解析

//  SandboxFile.h

//  SKY

//

//  Author LiuXiaoBin   Created by mac  on 14-11-19.

//  Copyright (c) 2014 hwb. All rights reserved.

//  Sand Box foundation Class



#import <Foundation/Foundation.h>


@interface SandboxFile : NSObject

//获取程序的Home目录路径

+(NSString *)GetHomeDirectoryPath;

//获取document目录路径

+(NSString *)GetDocumentPath;

//获取Cache目录路径

+(NSString *)GetCachePath;

//获取Library目录路径

+(NSString *)GetLibraryPath;

//获取Tmp目录路径

+(NSString *)GetTmpPath;

//创建目录文件夹

+(NSString *)CreateList:(NSString *)List ListName:(NSString *)Name;

//写入NsArray文件

+(BOOL)WriteFileArray:(NSArray *)ArrarObject SpecifiedFile:(NSString *)path;

//写入NSDictionary文件

+(BOOL)WriteFileDictionary:(NSMutableDictionary *)DictionaryObject SpecifiedFile:(NSString *)path;

//是否存在该文件

+(BOOL)IsFileExists:(NSString *)filepath;

//删除指定文件

+(void)DeleteFile:(NSString*)filepath;

//删除 document/dir 目录下 所有文件

+(void)deleteAllForDocumentsDir:(NSString*)dir;

//获取目录列表里所有的文件名

+(NSArray *)GetSubpathsAtPath:(NSString *)path;



//直接取文件数据

+(NSData*)GetDataForResource:(NSString*)name inDir:(NSString*) type;

+(NSData*)GetDataForDocuments:(NSString *)name inDir:(NSString*)dir;

+(NSData*)GetDataForPath:(NSString*)path;


//获取文件路径

+(NSString*)GetPathForCaches:(NSString *)filename;

+(NSString*)GetPathForCaches:(NSString *)filename inDir:(NSString*)dir;


+(NSString*)GetPathForDocuments:(NSString*)filename;

+(NSString*)GetPathForDocuments:(NSString *)filename inDir:(NSString*)dir;


+(NSString*)GetPathForResource:(NSString *)name;

+(NSString*)GetPathForResource:(NSString *)name inDir:(NSString*)dir;

@end




//

//  SandboxFile.m

//  SKY

//

//  Created by mac  on 14-11-19.

//  Copyright (c) 2014 hwb. All rights reserved.

//


#import "SandboxFile.h"


@implementation SandboxFile


/*

 ***************************************

 *获取程序的Home目录路径

 ***************************************

 */

+(NSString *)GetHomeDirectoryPath

{

    return NSHomeDirectory();

}

/*

 ***************************************

 *获取document目录路径

 ***************************************

 */

+(NSString *)GetDocumentPath

{

    NSArray *Paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *path=[Paths objectAtIndex:0];

    return path;

}

/*

 ***************************************

 *获取Cache目录路径

 ***************************************

 */

+(NSString *)GetCachePath

{

    NSArray *Paths=NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

    NSString *path=[Paths objectAtIndex:0];

    return path;

}

/*

 ***************************************

 *获取Library目录路径

 ***************************************

 */

+(NSString *)GetLibraryPath

{

    NSArray *Paths=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

    NSString *path=[Paths objectAtIndex:0];

    return path;

}

/*

 ***************************************

 *获取Tmp目录路径

 ***************************************

 */

+(NSString *)GetTmpPath

{

    return NSTemporaryDirectory();

}

/*

 ***************************************

 *返回Documents下的指定文件路径(加创建)

 ***************************************

 */

+(NSString *)GetDirectoryForDocuments:(NSString *)dir

{

    NSError* error;

    NSString* path = [[self GetDocumentPath] stringByAppendingPathComponent:dir];

    if(![[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:&error])

    {

        NSLog(@"create dir error: %@",error.debugDescription);

    }

    return path;

}

/*

 ***************************************

 *返回Caches下的指定文件路径

 ***************************************

 */

+(NSString *)GetDirectoryForCaches:(NSString *)dir

{

    NSError* error;

    NSString* path = [[self GetCachePath] stringByAppendingPathComponent:dir];

    

    if(![[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:&error])

    {

        NSLog(@"create dir error: %@",error.debugDescription);

    }

    return path;

}

/*

 ***************************************

 *创建目录文件夹

 ***************************************

 */

+(NSString *)CreateList:(NSString *)List ListName:(NSString *)Name

{

    NSFileManager *fileManager=[NSFileManager defaultManager];

    NSString *FileDirectory=[List stringByAppendingPathComponent:Name];

    if ([self IsFileExists:Name])

    {

        NSLog(@"exist,%@",Name);

    }

    else

    {

        [fileManager createDirectoryAtPath:FileDirectory withIntermediateDirectories:YES attributes:nil error:nil];

    }

    return FileDirectory;

}

/*

 ***************************************

 *写入NsArray文件

 ***************************************

 */

+(BOOL)WriteFileArray:(NSArray *)ArrarObject SpecifiedFile:(NSString *)path

{

    return [ArrarObject writeToFile:path atomically:YES];

}

/*

 ***************************************

 *写入NSDictionary文件

 ***************************************

 */

+(BOOL)WriteFileDictionary:(NSMutableDictionary *)DictionaryObject SpecifiedFile:(NSString *)path

{

    return [DictionaryObject writeToFile:path atomically:YES];

}

/*

  ***************************************

  *是否存在该文件

  ***************************************

  */

+(BOOL)IsFileExists:(NSString *)filepath

{

   return [[NSFileManager defaultManager] fileExistsAtPath:filepath];

}

/*

 ***************************************

 *删除指定文件

 ***************************************

 */

+(void)DeleteFile:(NSString *)filepath

{

    if([[NSFileManager defaultManager]fileExistsAtPath:filepath])

    {

        [[NSFileManager defaultManager] removeItemAtPath:filepath error:nil];

    }

}

/*

 ***************************************

 *获取目录列表里所有的文件名

 ***************************************

 */

+(NSArray *)GetSubpathsAtPath:(NSString *)path

{

    NSFileManager *fileManage=[NSFileManager defaultManager];

    NSArray *file=[fileManage subpathsAtPath:path];

    return file;

}

+(void)deleteAllForDocumentsDir:(NSString *)dir

{

    NSFileManager* fileManager = [NSFileManager defaultManager];

    NSArray *fileList = [fileManager contentsOfDirectoryAtPath:[self GetDirectoryForDocuments:dir] error:nil];

    for (NSString* filename in fileList) {

        [fileManager removeItemAtPath:[self GetPathForDocuments:filename inDir:dir] error:nil];

    }

}



#pragma mark- 获取文件的数据

+(NSData *)GetDataForPath:(NSString *)path

{

    return [[NSFileManager defaultManager] contentsAtPath:path];

}

+(NSData *)GetDataForResource:(NSString *)name inDir:(NSString *)dir

{

    return [self GetDataForPath:[self GetPathForResource:name inDir:dir]];

}

+(NSData *)GetDataForDocuments:(NSString *)name inDir:(NSString *)dir

{

    return [self GetDataForPath:[self GetPathForDocuments:name inDir:dir]];

}




#pragma mark- 获取文件路径

+(NSString *)GetPathForResource:(NSString *)name

{

    return [[NSBundle mainBundle].resourcePath stringByAppendingPathComponent:name];

}

+(NSString *)GetPathForResource:(NSString *)name inDir:(NSString *)dir

{

    return [[[NSBundle mainBundle].resourcePath stringByAppendingPathComponent:dir] stringByAppendingPathComponent:name];

}

+ (NSString *)GetPathForDocuments:(NSString *)filename

{

    return [[self GetDocumentPath] stringByAppendingPathComponent:filename];

}

+(NSString *)GetPathForDocuments:(NSString *)filename inDir:(NSString *)dir

{

    return [[self GetDirectoryForDocuments:dir] stringByAppendingPathComponent:filename];

}

+(NSString *)GetPathForCaches:(NSString *)filename

{

    return [[self GetCachePath] stringByAppendingPathComponent:filename];

}

+(NSString *)GetPathForCaches:(NSString *)filename inDir:(NSString *)dir

{

    return [[self GetDirectoryForCaches:dir] stringByAppendingPathComponent:filename];

}

@end




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值