Mengurus Direktori
Cipta, senaraikan dan buang direktori.
Mengurus Direktori ialah pelajaran Swift Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Swift Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Swift Academy merangkumi sejumlah 4 pelajaran.
Mengurus Direktori
FileManager ialah objek pusat untuk mencipta, menyenaraikan, memindahkan dan memadam fail serta direktori.
FileManager Dikongsi
Gunakan FileManager.default untuk kebanyakan operasi. Ia menyediakan instans dikongsi yang selamat untuk utas.
import Foundation
let fm = FileManager.default
print("Got the default file manager")Mencipta Direktori
createDirectory(at:withIntermediateDirectories:) mencipta direktori, dan secara pilihan turut mencipta semua direktori induk yang tiada.
import Foundation
let fm = FileManager.default
let dir = URL(fileURLWithPath: "/tmp/myapp/cache")
try? fm.createDirectory(at: dir, withIntermediateDirectories: true)
print("Directory created")Menyemak Kewujudan
fileExists(atPath:) melaporkan sama ada sesuatu laluan wujud, dan bendera masukan-keluaran memberitahu anda sama ada laluan itu ialah direktori.
import Foundation
let fm = FileManager.default
var isDir: ObjCBool = false
let exists = fm.fileExists(atPath: "/tmp", isDirectory: &isDir)
print("Exists: \(exists), isDir: \(isDir.boolValue)")Menyenaraikan Kandungan
contentsOfDirectory(at:includingPropertiesForKeys:) mengembalikan URL yang terdapat dalam sesuatu direktori.
import Foundation
let fm = FileManager.default
let dir = URL(fileURLWithPath: "/tmp")
if let items = try? fm.contentsOfDirectory(at: dir, includingPropertiesForKeys: nil) {
print("Item count: \(items.count)")
}Menyenaraikan Nama Sahaja
contentsOfDirectory(atPath:) berasaskan laluan mengembalikan rentetan nama fail biasa apabila anda tidak memerlukan URL penuh.
import Foundation
let fm = FileManager.default
if let names = try? fm.contentsOfDirectory(atPath: "/tmp") {
print("Names count: \(names.count)")
}Mengalih Keluar Item
removeItem(at:) memadam fail atau keseluruhan pepohon direktori. Gunakannya dengan berhati-hati.
import Foundation
let fm = FileManager.default
let url = URL(fileURLWithPath: "/tmp/myapp/cache/old.txt")
try? fm.removeItem(at: url)
print("Removed item if it existed")Memindahkan dan Menamakan Semula
moveItem(at:to:) memindahkan atau menamakan semula; copyItem(at:to:) menduplikasi fail.
import Foundation
let fm = FileManager.default
let src = URL(fileURLWithPath: "/tmp/a.txt")
let dst = URL(fileURLWithPath: "/tmp/b.txt")
try? fm.moveItem(at: src, to: dst)
print("Moved if source existed")Menelusuri Secara Mendalam
FileManager.DirectoryEnumerator menelusuri keseluruhan subpepohon secara rekursif dan menghasilkan setiap URL bersarang.
import Foundation
let fm = FileManager.default
let root = URL(fileURLWithPath: "/tmp")
if let e = fm.enumerator(at: root, includingPropertiesForKeys: nil) {
var count = 0
for case _ as URL in e { count += 1; if count > 5 { break } }
print("Walked some entries: \(count)")
}Atribut Fail
attributesOfItem(atPath:) mengembalikan metadata seperti saiz dan tarikh pengubahsuaian dalam kamus.
import Foundation
let fm = FileManager.default
if let attrs = try? fm.attributesOfItem(atPath: "/tmp"),
let size = attrs[.size] {
print("Has size attribute: \(size)")
}Mengendalikan Kegagalan
Operasi direktori menghasilkan ralat apabila berlaku masalah kebenaran atau laluan tiada. Bungkusnya dalam do/catch supaya anda dapat bertindak balas dengan baik.
import Foundation
let fm = FileManager.default
do {
try fm.removeItem(at: URL(fileURLWithPath: "/no/such/file"))
} catch {
print("Remove failed: \(error.localizedDescription)")
}Semakan Pantas
Apakah pilihan yang membuatkan createDirectory turut mencipta folder induk yang tiada?
Rumusan
FileManager.default mencipta folder dengan createDirectory, menyemak dengan fileExists, menyenaraikan dengan contentsOfDirectory, memadam dengan removeItem, serta memindahkan atau menyalin item. Anda juga telah menelusuri subpepohon dan membaca atribut. Seterusnya: direktori kotak pasir aplikasi.
Pelajari Swift dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 122
- Pelajaran
- 409
Soalan Lazim
Adakah pelajaran “Mengurus Direktori” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Swift Academy, termasuk “Mengurus Direktori”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Swift Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Mengurus Direktori”?
Cipta, senaraikan dan buang direktori. Anda berlatih Swift Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Swift Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Swift Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Mengurus Direktori” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Swift Academy ini?
Ya. Setiap pelajaran Swift Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.