สร้างไฟล์ชั่วคราว

Swift:
สร้างไฟล์ชั่วคราว

วิธีการ:

Swift ทำให้การสร้างไฟล์ชั่วคราวเป็นเรื่องง่ายด้วยการใช้คลาส FileManager นี่คือวิธีการสร้างไฟล์ชั่วคราวและเขียนข้อความเข้าไปในนั้น:

import Foundation

// สร้าง URL ของไดเรกทอรีชั่วคราว
let tempDirectoryURL = FileManager.default.temporaryDirectory

// สร้างชื่อไฟล์ที่ไม่ซ้ำ
let fileName = UUID().uuidString

// สร้าง URL ของไฟล์เต็ม
let fileURL = tempDirectoryURL.appendingPathComponent(fileName)

// ข้อความตัวอย่างที่จะเขียน
let sampleText = "Hello, temporary world!"

do {
    // เขียนข้อความลงในไฟล์ชั่วคราว
    try sampleText.write(to: fileURL, atomically: true, encoding: .utf8)
    print("ไฟล์ถูกสร้าง: \(fileURL)")
} catch {
    print("ล้มเหลวในการเขียนไฟล์: \(error)")
}

// ตัวอย่างผลลัพธ์:
// ไฟล์ถูกสร้าง: file:///path/to/temp/directory/E0B4952E-5BEE-47E7-B5BB-DA5E6AF1EDC9

หากต้องการอ่านไฟล์ แค่กลับขั้นตอนนี้—นี่คือวิธีการ:

do {
    // อ่านข้อความจากไฟล์ชั่วคราว
    let savedText = try String(contentsOf: fileURL, encoding: .utf8)
    print("เนื้อหาของไฟล์: \(savedText)")
} catch {
    print("ล้มเหลวในการอ่านไฟล์: \(error)")
}

// ตัวอย่างผลลัพธ์:
// เนื้อหาของไฟล์: Hello, temporary world!

ทำความสะอาดหลังจากใช้งานโดยการลบไฟล์ชั่วคราว:

do {
    // ลบไฟล์ชั่วคราว
    try FileManager.default.removeItem(at: fileURL)
    print("ไฟล์ชั่วคราวถูกลบแล้ว")
} catch {
    print("ล้มเหลวในการลบไฟล์: \(error)")
}

// ตัวอย่างผลลัพธ์:
// ไฟล์ชั่วคราวถูกลบแล้ว

ภาพรวมเพิ่มเติม

ก่อนหน้า FileManager, ผู้คนจัดการไฟล์ด้วยวิธีที่ยุ่งยากมากขึ้น จำ tmpfile() ของภาษา C ได้ไหม? FileManager ของ Swift ให้ความรู้สึกที่สดชื่นและทันสมัยเมื่อเปรียบเทียบ: ง่ายและทันสมัย

มีทางเลือกอื่นหรือไม่? แน่นอน คุณอาจใช้การแทนที่ในหน่วยความจำเช่น Data หรือ String, เหมาะสำหรับข้อมูลชั่วคราวที่แท้จริงที่มีขนาดจำกัด อีกหนึ่งทางเลือกคือการใช้ตัวจัดการไฟล์ชั่วคราวที่กำหนดเองสำหรับการควบคุมมากขึ้น แต่นั่นโดยทั่วไปแล้วเป็นการเกินความจำเป็น

รายละเอียดกล้วยๆ: FileManager ใช้ไดเรกทอรีชั่วคราวของระบบ ซึ่งจะถูกล้างออกเป็นครั้งคราวแต่ไม่ใช่หลังจากการรันโปรแกรมทุกครั้ง จำไว้เมื่อมันมาถึงความปลอดภัยหรือข้อมูลที่ละเอียดอ่อน—ทำความสะอาดด้วยตนเองหากจำเป็น

ดูเพิ่มเติม

ลองดูเหล่านี้เพื่อข้อมูลเพิ่มเติมเกี่ยวกับการจัดการไฟล์ใน Swift: