一直在倒騰iOS逆向,逆向水平受限于正向水平。邊學iOS開發(fā)邊學逆向,感覺這個過程有點艱辛。平時寫代碼寫得不是很多,然后每次需要用iOS文件操作的時候,總是需要百度Google。因此,想封裝一個iOS文件操作工具類,不知道自己這樣子封裝好不好,畢竟沒有大項目的開發(fā)經(jīng)驗,也不一定直接用這個來操作吧,只是方便自己用來查閱,免得每次都需要百度Google。
- 獲取應(yīng)用沙盒根目錄
+(NSString *)YYHomeDirectory{
return NSHomeDirectory();
}
//獲取Documents目錄
+(NSString *)YYDocumentsDirectory{
//[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return documentsDirectory;
}
//獲取Tmp目錄
+(NSString *)YYTmpDirectory{
//[NSHomeDirectory() stringByAppendingPathComponent:@"tmp"];
NSString *tmpDirectory = NSTemporaryDirectory();
return tmpDirectory;
}
//獲取Cache目錄
+(NSString *)YYCacheDirectory{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cacheDirectory = [paths objectAtIndex:0];
return cacheDirectory;
}
//獲取Library目錄
+(NSString *)YYLibraryDirectory{
//[NSHomeDirectory() stringByAppendingPathComponent:@"Library"];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libraryDirectory = [paths objectAtIndex:0];
return libraryDirectory;
}
#pragma mark --Documents下的文件操作
//得到Documents里的文件路徑
+ (NSString *)getFilePathAtDocuments:(NSString *)fileName{
return [[self YYDocumentsDirectory] stringByAppendingPathComponent:fileName];
}
//刪除Documents里的文件
+ (BOOL)deleteFileAtDocuments:(NSString *)fileName{
NSString *filePath = [[self YYDocumentsDirectory] stringByAppendingPathComponent:fileName];
NSFileManager *fileManager = [NSFileManager defaultManager];
if(![fileManager fileExistsAtPath:filePath])
{
return NO;
}
[fileManager removeItemAtPath:filePath error:nil];
return YES;
}
//創(chuàng)建指定名字的文件
+ (BOOL)createFileAtDocuments:(NSString *)fileName{
NSString *filePath = [[self YYDocumentsDirectory] stringByAppendingPathComponent:fileName];
NSFileManager *fileManager = [NSFileManager defaultManager];
if(![fileManager fileExistsAtPath:filePath]){
[fileManager createFileAtPath:filePath contents:nil attributes:nil];
return YES;
}
return NO;
}
//創(chuàng)建指定名字的文件夾
+ (BOOL)createDirectoryAtDocuments:(NSString *)fileName{
NSString *filePath = [[self YYDocumentsDirectory] stringByAppendingPathComponent:fileName];
NSFileManager *fileManager = [NSFileManager defaultManager];
if(![fileManager fileExistsAtPath:filePath]){
NSError *error = nil;
[fileManager createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:&error];
return YES;
}
return NO;
}
//文件是否存在
+ (BOOL)isFileExistsAtDocuments:(NSString *)fileName{
NSString *filePath = [[self YYDocumentsDirectory] stringByAppendingPathComponent:fileName];
NSFileManager *fileManager = [NSFileManager defaultManager];
if(![fileManager fileExistsAtPath:filePath]){
return NO;
}
return YES;
}
//寫文件
+(BOOL)writeFileAtDocumentsWithName:(NSString *) fileName AndContent:(NSString *)content{
NSString *iOSPath = [[self YYDocumentsDirectory] stringByAppendingPathComponent:fileName];
BOOL isSuccess = [content writeToFile:iOSPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
return isSuccess;
}
//讀文件
+ (NSString*)readFileContentAtDocumentsWithName:(NSString*)fileName{
NSString *filePath = [[self YYDocumentsDirectory] stringByAppendingPathComponent:fileName];
NSString *content = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
return content;
}