การจัดการไดเรกทอรี
สร้าง แสดงรายการ และลบไดเรกทอรี
การจัดการไดเรกทอรี เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
การจัดการไดเรกทอรี
FileManager เป็นออบเจ็กต์ศูนย์กลางสำหรับสร้าง แสดงรายการ ย้าย และลบไฟล์กับโฟลเดอร์
FileManager ที่ใช้ร่วมกัน
ใช้ FileManager.default สำหรับการดำเนินการส่วนใหญ่ โดยมีอินสแตนซ์ที่ใช้ร่วมกันและปลอดภัยต่อการทำงานหลายเธรด
import Foundation
let fm = FileManager.default
print("Got the default file manager")การสร้างไดเรกทอรี
createDirectory(at:withIntermediateDirectories:) สร้างโฟลเดอร์ และสามารถสร้างโฟลเดอร์แม่ที่ยังขาดอยู่ทั้งหมดให้โดยอัตโนมัติ
import Foundation
let fm = FileManager.default
let dir = URL(fileURLWithPath: "/tmp/myapp/cache")
try? fm.createDirectory(at: dir, withIntermediateDirectories: true)
print("Directory created")ตรวจสอบการมีอยู่
fileExists(atPath:) รายงานว่าเส้นทางมีอยู่หรือไม่ และแฟล็กที่รับส่งค่าจะบอกว่าเส้นทางนั้นเป็นไดเรกทอรีหรือไม่
import Foundation
let fm = FileManager.default
var isDir: ObjCBool = false
let exists = fm.fileExists(atPath: "/tmp", isDirectory: &isDir)
print("Exists: \(exists), isDir: \(isDir.boolValue)")แสดงรายการเนื้อหา
contentsOfDirectory(at:includingPropertiesForKeys:) คืนค่าที่อยู่ URL ภายในโฟลเดอร์
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)")
}แสดงเฉพาะชื่อ
contentsOfDirectory(atPath:) แบบใช้เส้นทางจะคืนค่าสตริงชื่อไฟล์ธรรมดา เมื่อคุณไม่ต้องการที่อยู่ URL แบบเต็ม
import Foundation
let fm = FileManager.default
if let names = try? fm.contentsOfDirectory(atPath: "/tmp") {
print("Names count: \(names.count)")
}ลบรายการ
removeItem(at:) ลบไฟล์หรือต้นไม้ไดเรกทอรีทั้งหมด ควรใช้อย่างระมัดระวัง
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")ย้ายและเปลี่ยนชื่อ
moveItem(at:to:) ย้ายหรือเปลี่ยนชื่อ ส่วน copyItem(at:to:) จะสร้างสำเนาของไฟล์
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")แจกแจงแบบเจาะลึก
FileManager.DirectoryEnumerator เดินสำรวจต้นไม้ย่อยทั้งหมดแบบเรียกซ้ำ และคืนค่าที่อยู่ URL ที่ซ้อนอยู่ทุกระดับ
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)")
}แอตทริบิวต์ของไฟล์
attributesOfItem(atPath:) คืนค่าข้อมูลเมตา เช่น ขนาดและวันที่แก้ไข ในรูปแบบพจนานุกรม
import Foundation
let fm = FileManager.default
if let attrs = try? fm.attributesOfItem(atPath: "/tmp"),
let size = attrs[.size] {
print("Has size attribute: \(size)")
}จัดการข้อผิดพลาด
การดำเนินการกับไดเรกทอรีจะโยนข้อผิดพลาดเมื่อเกิดปัญหาสิทธิ์หรือไม่พบเส้นทาง ให้ครอบด้วย do/catch เพื่อจัดการอย่างเหมาะสม
import Foundation
let fm = FileManager.default
do {
try fm.removeItem(at: URL(fileURLWithPath: "/no/such/file"))
} catch {
print("Remove failed: \(error.localizedDescription)")
}ตรวจสอบความเข้าใจ
ตัวเลือกใดทำให้ createDirectory สร้างโฟลเดอร์แม่ที่ยังไม่มีขึ้นมาด้วย
สรุปทบทวน
FileManager.default สร้างโฟลเดอร์ด้วย createDirectory ตรวจสอบด้วย fileExists แสดงรายการด้วย contentsOfDirectory ลบด้วย removeItem และย้ายหรือคัดลอกรายการได้ นอกจากนี้คุณยังได้แจกแจงต้นไม้ย่อยและอ่านแอตทริบิวต์แล้ว บทถัดไป: ไดเรกทอรีแซนด์บ็อกซ์ของแอป
คำถามที่พบบ่อย
บทเรียน “การจัดการไดเรกทอรี” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การจัดการไดเรกทอรี” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การจัดการไดเรกทอรี”
สร้าง แสดงรายการ และลบไดเรกทอรี คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การจัดการไดเรกทอรี” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม
ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- URL และเส้นทางไฟล์
- การอ่านและเขียนข้อมูล
- การจัดการไดเรกทอรี
- ไดเรกทอรีแซนด์บ็อกซ์ของแอป