0Pricing
Swift Academy · บทเรียน

การจัดการไดเรกทอรี

สร้าง แสดงรายการ และลบไดเรกทอรี

การจัดการไดเรกทอรี เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. URL และเส้นทางไฟล์
  2. การอ่านและเขียนข้อมูล
  3. การจัดการไดเรกทอรี
  4. ไดเรกทอรีแซนด์บ็อกซ์ของแอป
← กลับไปที่ Swift Academy