1. ホーム
  2. ios

[解決済み] ドキュメントディレクトリから指定されたファイルを削除する

2022-09-15 07:13:23

質問

アプリのドキュメントディレクトリから画像を削除したいです。画像を削除するために書いたコードは以下の通りです。

 -(void)removeImage:(NSString *)fileName
{
    fileManager = [NSFileManager defaultManager];
    paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    documentsPath = [paths objectAtIndex:0];
    filePath = [documentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", fileName]];
    [fileManager removeItemAtPath:filePath error:NULL];
    UIAlertView *removeSuccessFulAlert=[[UIAlertView alloc]initWithTitle:@"Congratulation:" message:@"Successfully removed" delegate:self cancelButtonTitle:@"Close" otherButtonTitles:nil];
    [removeSuccessFulAlert show];
}

部分的に動作しています。このコードは、ディレクトリからファイルを削除しますが、私はディレクトリ内のコンテンツをチェックしているとき、それはまだそこに画像名を表示しています。私は、ディレクトリからそのファイルを完全に削除したいです。同じことをするために、コードで何を変更する必要がありますか?ありがとうございます。

どのように解決するのですか?

私はあなたのコードをチェックしました。それは私のために動作しています。以下の修正したコードを使用して、あなたが得ているエラーをチェックしてください。

- (void)removeImage:(NSString *)filename
{
  NSFileManager *fileManager = [NSFileManager defaultManager];
  NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

  NSString *filePath = [documentsPath stringByAppendingPathComponent:filename];
  NSError *error;
  BOOL success = [fileManager removeItemAtPath:filePath error:&error];
  if (success) {
      UIAlertView *removedSuccessFullyAlert = [[UIAlertView alloc] initWithTitle:@"Congratulations:" message:@"Successfully removed" delegate:self cancelButtonTitle:@"Close" otherButtonTitles:nil];
      [removedSuccessFullyAlert show];
  }
  else
  {
      NSLog(@"Could not delete file -:%@ ",[error localizedDescription]);
  }
}