NSDocumentDirectory沙盒中文件的復制、刪除

遍歷沙盒中的所有文件

  NSFileManager *fileManager = [NSFileManager defaultManager];
  NSArray * paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  NSString *documentsDirectory = [paths objectAtIndex:0];//去處需要的路徑
  NSDirectoryEnumerator<NSString *> * myDirectoryEnumerator;
  myDirectoryEnumerator=  [fileManager enumeratorAtPath:documentsDirectory];
  
  while (documentsDirectory = [myDirectoryEnumerator nextObject]) {
    for (NSString * namePath in documentsDirectory.pathComponents) {
      NSLog(@"-----namePath-----%@", namePath  );
    }
  }

操作App分享的文件

App分享的文件存放在DocumentDirectory中的 Inbox/文件夾里面,Inbox/的權限是可讀可刪除,但是不可用NSFileManager寫入文件

將Inbox/文件夾中的文件copy到自己創(chuàng)建的文件夾中
+ (void)copyInboxFilesToNoticeDir{
    //讀取copy到inbox的文件
 NSString *documentDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
    NSString *inboxFilePath = [documentDir stringByAppendingPathComponent:@"Inbox/"];
    NSDirectoryEnumerator *inboxArray = [[NSFileManager defaultManager] enumeratorAtPath:inboxFilePath];
    for (NSString *fileName in inboxArray){
      NSString *tmpPath = [documentDir stringByAppendingPathComponent:[NSString stringWithFormat:@"Inbox/%@",fileName]];
      NSString *copyPath = [documentDir stringByAppendingPathComponent:[NSString stringWithFormat:@"Notice/Attachment/%@",fileName]];
      if([[NSFileManager defaultManager] moveItemAtPath:tmpPath toPath:copyPath error:nil]){
        [[NSFileManager defaultManager] removeItemAtPath:tmpPath error:nil];
      }
    }
}
移除Inbox文件夾中的所有文件
+ (void)removeInboxFiles{
 NSString *documentDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
    NSString *inboxFilePath = [documentDir stringByAppendingPathComponent:@"Inbox/"];
    NSDirectoryEnumerator *inboxArray = [[NSFileManager defaultManager] enumeratorAtPath:inboxFilePath];
    for (NSString *fileName in inboxArray){
      NSString *tmpPath = [documentDir stringByAppendingPathComponent:[NSString stringWithFormat:@"Inbox/%@",fileName]];
      [[NSFileManager defaultManager] removeItemAtPath:tmpPath error:nil];
    }
}
刪除某一個文件
+ (void)deleteNoticeAttachment:(NSString *)fileName
{
  [self checkFolderWithName:[NSString stringWithFormat:@"Notice/Attachment"]];
 NSString *documentDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
  NSString *filePath = [documentDir stringByAppendingPathComponent:[NSString stringWithFormat:@"Notice/Attachment/%@",fileName]];
  if ([[NSFileManager defaultManager] isDeletableFileAtPath:filePath]) {
    [[NSFileManager defaultManager] removeItemAtPath:filePath error:nil];
  }
}


+ (void)checkFolderWithName:(NSString *)folderName
{
 NSString *documentDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
  NSString *folderPath = [documentDir stringByAppendingPathComponent:folderName];
  if (![[NSFileManager defaultManager] fileExistsAtPath:folderPath])
  {
    [[NSFileManager defaultManager] createDirectoryAtPath:folderPath withIntermediateDirectories:YES attributes:nil error:nil];
  }
}

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容