Saya ingin menghapus gambar dari direktori dokumen aplikasi saya. Kode yang saya tulis untuk menghapus gambar adalah:
-(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];
}
Ini bekerja sebagian. Kode ini menghapus file dari direktori, tetapi ketika saya memeriksa isinya di direktori, masih menampilkan nama gambar di sana. Saya ingin menghapus file itu sepenuhnya dari direktori. Apa yang harus saya ubah dalam kode untuk melakukan hal yang sama? Terima kasih
contentsOfDirectoryAtPath
(yaitu tidak ada direktori caching yang terlibat di sini). Jadi, Anda pasti memiliki beberapa kesalahan sederhana dalam permainan yang akan terlihat ketika Anda melihatNSError
isinya.Jawaban:
Aku sudah memeriksa kodemu. Ini bekerja untuk saya. Periksa kesalahan apa pun yang Anda dapatkan dengan menggunakan kode yang dimodifikasi di bawah ini
sumber
Swift 3.0:
Terima kasih kepada @Anil Varghese, saya menulis kode yang sangat mirip di swift 2.0:
sumber
Swift 2.0:
sumber
Di Swift baik 3 & 4
atau Metode ini dapat menghapus semua file lokal
sumber
Alih-alih menyetel kesalahan ke NULL, setel ke
ini akan memberi tahu Anda jika itu benar-benar menghapus file
sumber
Saya ingin menghapus sqlite db saya dari direktori dokumen. Saya berhasil menghapus sqlite db dengan jawaban di bawah ini
sumber
sumber
Versi FreeGor dikonversi ke Swift 3.0
sumber
Anda bisa melindungi dua kali penghapusan file Anda dengan NSFileManager.defaultManager (). IsDeletableFileAtPath (PathName) Mulai sekarang Anda HARUS menggunakan do {} catch {} karena metode kesalahan lama tidak lagi berfungsi. isDeletableFileAtPath () bukan "throws" (yaitu "public func removeItemAtPath (path: String) throws") jadi tidak perlu do ... catch
sumber
Jika Anda tertarik dengan cara api modern, hindari NSSearchPath dan filter file di direktori dokumen, sebelum menghapus, Anda dapat melakukan seperti:
sumber