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: