123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- //
- // ASFileManager.m
- // AIPlayRingtones
- //
- // Created by mini on 2025/5/28.
- //
- #import "ASFileManager.h"
- @implementation ASFileManager
- + (NSURL *)documentsDirectory {
- return [NSFileManager.defaultManager URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask].firstObject;
- }
- + (NSURL *)cacheDirectory {
- return [NSFileManager.defaultManager URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask].firstObject;
- }
- + (void)copyFileWithOverwriteFrom:(NSURL *)sourceURL to:(NSURL *)targetURL {
- NSFileManager *fileManager = [NSFileManager defaultManager];
- @try {
- [self removeItemFrom:targetURL];
- [self checkFolderAndCreateFrom:targetURL];
- [fileManager copyItemAtURL:sourceURL toURL:targetURL error:nil];
- NSLog(@"文件复制成功!");
- } @catch (NSException *exception) {
- NSLog(@"文件复制失败: %@", exception.description);
- }
- }
- + (void)removeItemFrom:(NSURL *)sourceURL {
- NSFileManager *fileManager = [NSFileManager defaultManager];
- @try {
- if ([fileManager fileExistsAtPath:sourceURL.path]) {
- [fileManager removeItemAtURL:sourceURL error:nil];
- }
- NSLog(@"文件删除成功!");
- } @catch (NSException *exception) {
- NSLog(@"文件删除失败: %@", exception.description);
- }
- }
- + (void)checkFolderAndCreateFrom:(NSURL *)destinationURL {
- NSFileManager *fileManager = [NSFileManager defaultManager];
- NSURL *destinationDirectory = [destinationURL URLByDeletingLastPathComponent];
-
- if (![fileManager fileExistsAtPath:destinationDirectory.path]) {
- @try {
- [fileManager createDirectoryAtURL:destinationDirectory withIntermediateDirectories:YES attributes:nil error:nil];
- } @catch (NSException *exception) {
- NSLog(@"尝试创建文件夹失败: %@", exception.description);
- }
- }
- }
- + (BOOL)fileExistsAtURL:(NSURL *)url {
- return [[NSFileManager defaultManager] fileExistsAtPath:url.path];
- }
- + (void)createDirectoryAtURL:(NSURL *)url error:(NSError **)error {
- if (![self fileExistsAtURL:url]) {
- [[NSFileManager defaultManager] createDirectoryAtURL:url withIntermediateDirectories:YES attributes:nil error:error];
- }
- }
- + (NSString *)getCacheSubPathAtURL:(NSURL *)url {
- NSArray *array = [url.path componentsSeparatedByString:@"/Caches/"];
- NSString *cashFilePath = array.lastObject;
- return cashFilePath ?: @"";
- }
- @end
- @implementation NSString (CachePath)
- - (BOOL)isCachesPath {
- return [self containsString:@"/Caches/"];
- }
- - (NSString *)fillCachePath {
- return [[ASFileManager cacheDirectory] URLByAppendingPathComponent:self].path;
- }
- - (NSURL *)fillCacheURL {
- return [[ASFileManager cacheDirectory] URLByAppendingPathComponent:self];
- }
- - (NSString *)cachesLastURLString {
- NSArray *parts = [self componentsSeparatedByString:@"/Caches/"];
- if (parts.count > 1) {
- return parts.lastObject;
- }
- return self;
- }
- @end
- @implementation NSString (DocumentPath)
- - (BOOL)isDocumentPath {
- return [self containsString:@"/Documents/"];
- }
- - (NSString *)fillDocumentPath {
- return [[ASFileManager documentsDirectory] URLByAppendingPathComponent:self].path;
- }
- - (NSURL *)fillDocumentURL {
- return [[ASFileManager documentsDirectory] URLByAppendingPathComponent:self];
- }
- - (NSString *)documentLastURLString {
- NSArray *parts = [self componentsSeparatedByString:@"/Documents/"];
- if (parts.count > 1) {
- return parts.lastObject;
- }
- return self;
- }
- @end
|