// 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