Bagaimana cara memeriksa apakah ada file di direktori Documents Swift
?
Saya menggunakan [ .writeFilePath ]
metode untuk menyimpan gambar ke direktori Documents dan saya ingin memuatnya setiap kali aplikasi diluncurkan. Tetapi saya memiliki gambar default jika tidak ada gambar yang disimpan.
Tapi saya tidak bisa mengerti bagaimana cara menggunakan [ func fileExistsAtPath(_:) ]
fungsi ini. Bisakah seseorang memberi contoh menggunakan fungsi dengan argumen jalur diteruskan ke dalamnya.
Saya yakin saya tidak perlu menempelkan kode apa pun di sana karena ini adalah pertanyaan umum. Bantuan apa pun akan sangat dihargai.
Bersulang
Periksa kode di bawah ini:
Cepat 1.2
Swift 2.0
sumber
var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString
absoluteString
untuk mengonversiNSURL
kepath
tetapi akan lebih baik untuk tetap menyimpan path sebagai string (NSString
) seperti yang Anda lakukan di Swift 1.2.Saat ini (2016) Apple merekomendasikan semakin banyak untuk menggunakan API terkait URL
NSURL
,NSFileManager
dll.Untuk mendapatkan direktori dokumen di iOS dan Swift 2 gunakan
The
try!
aman dalam kasus ini karena direktori standar ini dijamin ada.Kemudian tambahkan komponen path yang sesuai misalnya
sqlite
fileSekarang memeriksa apakah file ada dengan
checkResourceIsReachableAndReturnError
dariNSURL
.Jika Anda memerlukan kesalahan, berikan
NSError
pointer ke parameter.Swift 3+:
checkResourceIsReachable
ditandai sebagai dapat melemparUntuk mempertimbangkan hanya nilai pengembalian boolean dan mengabaikan kesalahan gunakan operator nil-penggabungan
sumber
checkResourceIsReachable()
dan hanya mengembalikanBool
untukURL
tipe.try - catch
tidak memberikan pengecualian. Itu tidak bisa dibandingkan dengan pengecualian di Objective-C. Ini adalah sistem penanganan kesalahan yang efisien.Sangat user friendly. Hanya bekerja dengan singel defaultManager NSFileManager dan kemudian gunakan
fileExistsAtPath()
metode, yang hanya mengambil string sebagai argumen, dan mengembalikan Bool, yang memungkinkan untuk ditempatkan langsung dalam pernyataan if.Perhatikan bahwa downcast to String tidak diperlukan di Swift 2.
sumber
Pola Kode alternatif / yang disarankan dalam Swift 3 adalah:
Penggunaan penanganan pengecualian
sumber
Cepat 4.2
Menggunakan: -
sumber
Untuk kepentingan pemula Swift 3 :
Berikut adalah contoh kode untuk memverifikasi apakah file bernama "database.sqlite" ada di direktori dokumen aplikasi:
sumber
Sangat sederhana: Jika path Anda adalah instance URL, konversi ke string dengan metode 'path'.
sumber
Ini berfungsi dengan baik untuk saya di swift4:
Anda dapat memeriksa dengan panggilan ini:
Semoga bermanfaat bagi seseorang. @; -]
sumber
Anda harus menambahkan slash "/" sebelum nama file, atau Anda mendapatkan path seperti "... / DocumentsFilename.jpg"
sumber
Contoh Swift 4 :
Saya meletakkan cek di fungsi loadData yang saya panggil di viewDidLoad.
Lalu saya mendefinisikan loadData di bawah ini.
sumber
bekerja di Swift 5
di mana
"userInfo"
- nama file, dan"sqlite3"
- ekstensi filesumber