Temporary Directory — ano ito, mga pansamantalang file at pamamahala ng storage

May-akda: IT Sectr Nai-publish: 2026-07-10 Oras ng pagbabasa: 10 min

Temporary Directory (tmp) — ay isang direktoryo sa sandbox ng iOS application para sa pag-iimbak ng napakaikling data na kailangan lamang sa kasalukuyang session ng application. Ayon sa Apple File System Programming Guide (2024), maaaring linisin ng system ang tmp sa bawat pagtatapos ng application o sa pag-restart ng device. Hindi tulad ng Caches Directory, ang mga pansamantalang file sa tmp ay hindi para sa pag-iimbak sa pagitan ng mga paglunsad — dapat na tahasang tanggalin ng developer ang mga ito pagkatapos gamitin upang hindi kumain ng espasyo sa disk.

Mga Pangunahing Punto

  • Temporary Directory — direktoryo para sa data na kailangan lamang sa kasalukuyang session ng application.
  • Maaaring linisin ng iOS system ang tmp sa pag-restart ng device o pagtatapos ng application.
  • Ang mga file mula sa tmp ay hindi kasama sa iCloud at iTunes backup.
  • Ang path sa tmp ay nakukuha sa pamamagitan ng NSTemporaryDirectory() sa Swift o Objective-C.
  • Dapat tanggalin mismo ng developer ang mga file mula sa tmp pagkatapos gamitin.

Ano ang Temporary Directory sa iOS?

Temporary Directory (kilala rin bilang tmp) — ay isang direktoryo sa loob ng sandbox ng iOS application, na nilayon para sa pag-iimbak ng data na ang habang-buhay ay limitado sa kasalukuyang session. Ito ang pinakamaikling imbakan sa lahat ng direktoryo ng sandbox.

Ang iOS ay nagbibigay ng tmp para sa mga operasyon na nangangailangan ng pansamantalang pag-iimbak ng file: pag-download ng file bago ilipat sa Documents, paggawa ng pansamantalang kopya bago i-export, pag-buffer ng streaming data. Pagkatapos makumpleto ang operasyon, dapat tanggalin ang mga pansamantalang file.

Ayon sa Apple Developer Documentation (2024), ang tmp directory ay natatangi dahil ang path nito ay maaaring magbago sa pagitan ng mga paglunsad ng application. Ang iOS ay lumilikha ng bagong path sa tmp sa bawat paglunsad — ito ay nagsisiguro na ang data mula sa nakaraang session ay hindi aksidenteng mababasa. Hindi dapat i-save ng developer ang path sa tmp sa pagitan ng mga paglunsad.

Mahalaga: hindi tulad ng Caches Directory, kung saan ang data ay maaaring mabuhay ng maraming paglunsad, hindi ginagarantiyahan ng tmp ang pag-iimbak ng data sa pagitan ng mga session sa pangmatagalan. Ito ang pinaka-maaasahang paraan upang mag-imbak ng tunay na pansamantalang data.

Paano makuha ang path sa Temporary Directory

Sa Swift para makuha ang path sa tmp ay ginagamit ang global function na NSTemporaryDirectory() o FileManager.temporaryDirectory. Ito ang pinakasimpleng API sa lahat ng direktoryo ng sandbox.

swift
import Foundation

// Opsyon 1: NSTemporaryDirectory()
let tempDir = NSTemporaryDirectory()
let tempFile = (tempDir as NSString)
    .appendingPathComponent("export_temp.pdf")

// Opsyon 2: FileManager.temporaryDirectory (URL)
let tempURL = FileManager.default.temporaryDirectory
let exportURL = tempURL.appendingPathComponent("export_temp.pdf")

Ang Objective-C ay gumagamit ng parehong global function na NSTemporaryDirectory(). Ang resulta — isang string na may kumpletong path sa pansamantalang direktoryo ng application.

objective-c
@import Foundation;

NSString *tempDir = NSTemporaryDirectory();
NSString *tempFile = [tempDir stringByAppendingPathComponent:@"temp_data.bin"];

Ang pangunahing pagkakaiba sa ibang mga direktoryo: NSTemporaryDirectory() ay hindi nangangailangan ng pagtukoy ng domain o mask — ito ay isang global function. Gayunpaman, ang path ay maaaring magbago sa susunod na paglunsad, kaya huwag itong i-save sa UserDefaults o iba pang persistent storage.

Anong data ang iimbak sa tmp

Temporary Directory ay nilayon para sa isang mahigpit na tinukoy na hanay ng mga sitwasyon. Madalas na napagkakamalan ng mga developer ang tmp sa Caches, na naglalagay sa tmp ng data na dapat mabuhay nang higit sa isang session. Tingnan natin ang mga tamang kaso ng paggamit.

Mga pansamantalang file sa pag-export

Mga file na nilikha sa proseso ng pag-export ng data: pansamantalang kopya ng ulat bago ipadala sa email, naka-compress na archive bago i-download, pansamantalang file ng conversion ng format. Pagkatapos makumpleto ang pag-export, dapat tanggalin ang file.

Pag-buffer ng streaming data

Mga pansamantalang buffer para sa pag-record ng audio, video o streaming data na pinoproseso sa real-time. Halimbawa, pag-record ng boses bago i-save sa permanenteng imbakan o pag-buffer ng video stream habang nag-streaming.

SitwasyonDirektoryoPaliwanag
Pag-export PDF bago ipadalatmpHindi kailangan ang file pagkatapos ipadala
Cache ng mga larawanCachesKapaki-pakinabang sa pagitan ng mga session
Pag-download ng file bago ilipattmpPansamantalang imbakan
Log ng sessiontmpMay kaugnayan lamang sa session
Pag-edit ng dokumentotmpBersyon bago i-save

Kung ang data ay kailangan lamang dito at ngayon — gamitin ang tmp. Kung maaaring kailanganin sa susunod na session — gamitin ang Caches. Kung hindi katanggap-tanggap ang pagkawala ng data — gamitin ang Documents.

Siklo ng buhay ng mga pansamantalang file

iOS ay namamahala sa siklo ng buhay ng tmp nang iba kaysa sa ibang mga direktoryo ng sandbox. Ang pag-unawa sa siklong ito ay kritikal para sa tamang disenyo ng pag-iimbak ng file sa application.

Sa bawat paglunsad ng application, ang iOS ay maaaring maglaan ng bagong path para sa tmp. Ang dating path ay nagiging hindi ma-access, bagaman ang mga pisikal na file ay maaaring manatili sa disk hanggang sa pag-restart ng device. Ito ang dahilan kung bakit mahigpit na inirerekomenda ng Apple na huwag i-save ang path sa tmp sa pagitan ng mga session.

Ayon sa Apple Tech Note TN2150 (2024), maaaring linisin ng system ang tmp sa mga sumusunod na kaso: sa pag-restart ng device, sa pag-abot sa limitasyon ng espasyo sa disk, sa pag-offload ng application. Hindi tulad ng Caches, ang tmp ay hindi nilayon para sa pag-iimbak ng data kahit sa maraming paglunsad — ito ang pinaka-hindi maaasahang imbakan sa sandbox.

Ang developer ay obligadong tahasang tanggalin ang mga pansamantalang file pagkatapos makumpleto ang operasyon gamit ang FileManager.removeItem(at:). Ang mga hindi natanggal na file sa tmp ay naiipon at kumakain ng espasyo sa disk — hindi ginagarantiyahan ng iOS ang kanilang awtomatikong paglilinis sa malapit na hinaharap.

Temporary Directory vs Caches Directory

Ang paghahambing ng tmp at Caches ay tumutulong sa mga developer na gumawa ng tamang desisyon sa pagpili ng direktoryo para sa imbakan. Ang pagkakamali sa pagpili ay maaaring humantong sa maagang pagkawala ng data o hindi kinakailangang pag-aaksaya ng espasyo.

ParameterTemporary DirectoryCaches Directory
Haba ng buhayTanging kasalukuyang sessionSa pagitan ng mga session (walang garantiya)
Pagbabago ng pathMaaaring magbago bawat paglunsadMatatag na path
Awtomatikong paglilinisSa restart, sa offloadSa kakulangan ng espasyo
Pagtatanggal ng developerKinakailangan pagkatapos ng operasyonInirerekomenda kapag lumampas sa limitasyon
PaggamitMga pansamantalang operasyonPatuloy na cache

Praktikal na patakaran: piliin ang tmp para sa data na tatanggalin sa loob ng ilang segundo o minuto pagkatapos gawin. Piliin ang Caches para sa data na sulit na itago sa loob ng ilang oras o araw sa pagitan ng mga session, ngunit maaaring muling likhain.

Mga pinakamahusay na kasanayan sa pagtatrabaho sa tmp

Ang pagtatrabaho sa Temporary Directory ay nangangailangan ng disiplina: dahil ang data sa tmp ay panandalian at ang akumulasyon nito ay maaaring humantong sa hindi kinakailangang pag-aaksaya ng espasyo, ang developer ay dapat sumunod sa ilang pangunahing kasanayan.

Palaging tanggalin ang mga file pagkatapos gamitin

FileManager.removeItem(at:) ay dapat tawagan kaagad pagkatapos makumpleto ang operasyon sa pansamantalang file. Gamitin ang defer sa Swift upang garantiyahan ang pagtatanggal kahit na magkaroon ng error.

swift
import Foundation

let tempURL = FileManager.default
    .temporaryDirectory
    .appendingPathComponent("upload_temp.dat")

defer {
    try? FileManager.default.removeItem(at: tempURL)
}

// Magtrabaho sa pansamantalang file
try "temporary data".write(to: tempURL, atomically: true)
// ... operasyon sa file ...
// ang defer ay isinasagawa kapag lumabas sa scope

Huwag gamitin ang tmp para sa pangmatagalang data

Kung ang data ay maaaring kailanganin isang oras pagkatapos gawin — i-save ito sa Caches o Application Support. Ang tmp ay para sa mga minutong operasyon, hindi para sa pag-iimbak.

Ang pagsunod sa mga patakarang ito ay nagsisiguro na ang mga pansamantalang file ay hindi naiipon, ang espasyo sa disk ay ginagamit nang mahusay, at ang application ay wastong humahawak sa anumang sitwasyon ng paglilinis ng iOS file system.

Mga Madalas Itanong

Maaari bang magbago ang path sa Temporary Directory habang tumatakbo ang application?

Karaniwan ay hindi nagbabago ang path sa loob ng isang session, ngunit ang iOS ay hindi nagbibigay ng garantiya. Sa mga bihirang kaso, maaaring baguhin ng system ang tmp kapag lumipat ang application mula sa background patungo sa aktibong estado. Kaya naman inirerekomenda ng Apple na kunin ang path sa tmp sa pamamagitan ng NSTemporaryDirectory() sa bawat tawag, sa halip na i-save ito sa isang variable.

Ano ang mangyayari kung hindi ko tanggalin ang mga file mula sa tmp?

Mga file ay maiipon at kukuha ng espasyo sa disk. Maaaring linisin ng iOS ang tmp sa pag-restart ng device, ngunit hanggang sa panahong iyon ay aaksayahin ng application ang espasyo sa disk. Sa malaking akumulasyon, makikita ng user sa mga setting ng storage na ang application ay kumukuha ng maraming espasyo.

Angkop ba ang tmp para sa pag-encrypt ng pansamantalang data?

Oo, maaari mong gamitin ang DataProtectionType na may NSFileProtectionComplete para sa mga pansamantalang file na naglalaman ng sensitibong data. Ngunit tandaan: kung ang file ay babasahin lamang sa kasalukuyang session at pagkatapos ay tatanggalin — ang pag-encrypt ay maaaring labis. Suriin ang pangangailangan para sa pag-encrypt batay sa uri ng data.

Paano lumikha ng natatanging pangalan ng file sa tmp nang walang banggaan?

Gamitin ang ProcessInfo.processInfo.globallyUniqueString para sa pagbuo ng natatanging identifier o UUID().uuidString. Nagbibigay din ang FileManager ng paraang urlForCreatingTemporaryFile na awtomatikong lumilikha ng natatanging pangalan sa tmp. Ito ay nagsisiguro ng kawalan ng banggaan sa parallel na pagsulat.

Nakakaapekto ba ang laki ng tmp sa pag-review sa App Store?

Hindi direkta — oo. Apple ay binibigyang pansin ang kabuuang laki ng data na iniimbak ng application sa disk. Kung ang tmp ay naglalaman ng mga hindi natanggal na file na gigabytes, maaaring tanggihan ng reviewer ang application. Ang inirerekomendang limitasyon para sa tmp — hindi hihigit sa 100 MB sa anumang oras. Regular na linisin ang tmp at suriin ang laki nito sa pamamagitan ng FileManager.

Buod

  • Temporary Directory (tmp) — direktoryo para sa data na ang habang-buhay ay limitado sa kasalukuyang session ng application.
  • Ang path sa tmp ay maaaring magbago sa pagitan ng mga paglunsad — huwag itong i-save sa persistent storage.
  • Maaaring linisin ng system ang tmp sa pag-restart ng device o pag-offload ng application.
  • Ang mga file mula sa tmp ay hindi kasama sa iCloud at iTunes backup.
  • Hindi tulad ng Caches Directory, ang tmp ay hindi para sa pag-iimbak sa pagitan ng mga session.
  • Dapat tahasang tanggalin ng developer ang mga pansamantalang file gamit ang FileManager.removeItem.
  • Gamitin ang defer sa Swift para sa garantisadong pagtatanggal ng mga pansamantalang file sa anumang resulta ng operasyon.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din