Temporary Directory — यह क्या है, अस्थायी फ़ाइलें और स्टोरेज प्रबंधन

लेखक: IT Sectr प्रकाशित: 2026-07-10 पढ़ने का समय: 10 मिनट

Temporary Directory (tmp) iOS ऐप सैंडबॉक्स में एक डायरेक्टरी है जो अत्यंत अल्पकालिक डेटा को संग्रहीत करने के लिए होती है, जो केवल ऐप के वर्तमान सत्र के दौरान आवश्यक होता है। Apple File System Programming Guide (2024) के अनुसार, सिस्टम प्रत्येक ऐप समाप्ति या डिवाइस रीस्टार्ट पर tmp को साफ़ कर सकता है। Caches Directory के विपरीत, tmp में अस्थायी फ़ाइलें लॉन्च के बीच संग्रहीत रहने के लिए नहीं होती हैं — डेवलपर को डिस्क स्थान बर्बाद न करने के लिए उपयोग के बाद उन्हें स्पष्ट रूप से हटाना चाहिए।

मुख्य बातें

  • Temporary Directory — केवल वर्तमान ऐप सत्र में आवश्यक डेटा के लिए डायरेक्टरी।
  • iOS डिवाइस रीस्टार्ट या ऐप समाप्ति पर tmp को साफ़ कर सकता है।
  • tmp की फ़ाइलें iCloud और iTunes बैकअप में शामिल नहीं होती हैं।
  • tmp का पथ Swift या Objective-C में NSTemporaryDirectory() के माध्यम से प्राप्त किया जाता है।
  • डेवलपर को उपयोग के बाद tmp से फ़ाइलों को मैन्युअल रूप से हटाना चाहिए।

iOS में Temporary Directory क्या है?

Temporary Directory (जिसे tmp के नाम से भी जाना जाता है) iOS ऐप सैंडबॉक्स के अंदर एक डायरेक्टरी है जो उस डेटा को संग्रहीत करने के लिए डिज़ाइन की गई है जिसका जीवनकाल वर्तमान सत्र तक सीमित है। यह सभी सैंडबॉक्स डायरेक्टरी में सबसे अल्पकालिक भंडारण है।

iOS उन कार्यों के लिए tmp प्रदान करता है जिनमें मध्यवर्ती फ़ाइल भंडारण की आवश्यकता होती है: Documents में ले जाने से पहले फ़ाइल डाउनलोड करना, निर्यात से पहले अस्थायी प्रतिलिपि बनाना, स्ट्रीमिंग डेटा को बफर करना। कार्य पूरा होने के बाद, अस्थायी फ़ाइलों को हटा दिया जाना चाहिए।

Apple Developer Documentation (2024) के अनुसार, tmp डायरेक्टरी अद्वितीय है क्योंकि इसका पथ ऐप लॉन्च के बीच बदल सकता है। iOS प्रत्येक लॉन्च पर tmp के लिए एक नया पथ उत्पन्न करता है — यह सुनिश्चित करता है कि पिछले सत्र का डेटा गलती से न पढ़ा जाए। डेवलपर को कभी भी tmp पथ को लॉन्च के बीच सहेजना नहीं चाहिए।

महत्वपूर्ण: Caches Directory के विपरीत, जहाँ डेटा कई लॉन्च तक रह सकता है, tmp लंबी अवधि में सत्रों के बीच डेटा बनाए रखने की गारंटी नहीं देता। यह वास्तव में अस्थायी डेटा संग्रहीत करने का सबसे विश्वसनीय तरीका है।

Temporary Directory का पथ कैसे प्राप्त करें

Swift में, tmp का पथ प्राप्त करने के लिए वैश्विक फ़ंक्शन NSTemporaryDirectory() या FileManager.temporaryDirectory का उपयोग किया जाता है। ये सभी सैंडबॉक्स डायरेक्टरी में सबसे सरल API हैं।

swift
import Foundation

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

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

Objective-C उसी वैश्विक फ़ंक्शन NSTemporaryDirectory() का उपयोग करता है। परिणाम ऐप की अस्थायी डायरेक्टरी का पूर्ण पथ वाली स्ट्रिंग है।

objective-c
@import Foundation;

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

अन्य डायरेक्टरी से एक मुख्य अंतर: NSTemporaryDirectory() को डोमेन या सर्च मास्क निर्दिष्ट करने की आवश्यकता नहीं है — यह एक वैश्विक फ़ंक्शन है। हालाँकि, अगले लॉन्च पर पथ बदल सकता है, इसलिए इसे कभी भी UserDefaults या किसी अन्य स्थायी भंडारण में सहेजें नहीं।

tmp में कौन सा डेटा संग्रहीत करें

Temporary Directory कड़ाई से परिभाषित परिदृश्यों के लिए अभिप्रेत है। डेवलपर अक्सर tmp को Caches समझ लेते हैं, tmp में वह डेटा रख देते हैं जिसे एक सत्र से अधिक रहना चाहिए। आइए सही उपयोग के मामलों को देखें।

निर्यात के दौरान मध्यवर्ती फ़ाइलें

फ़ाइलें जो डेटा निर्यात प्रक्रिया के दौरान बनाई जाती हैं: ईमेल द्वारा भेजने से पहले रिपोर्ट की अस्थायी प्रतिलिपि, अपलोड करने से पहले संपीड़ित संग्रह, प्रारूप रूपांतरण की मध्यवर्ती फ़ाइल। निर्यात पूरा होने के बाद, फ़ाइल को हटा दिया जाना चाहिए।

स्ट्रीमिंग डेटा का बफरिंग

अस्थायी बफर ऑडियो, वीडियो या स्ट्रीमिंग डेटा रिकॉर्ड करने के लिए जो रियल टाइम में प्रोसेस किया जाता है। उदाहरण के लिए, स्थायी भंडारण में सहेजने से पहले वॉइस रिकॉर्डिंग, या स्ट्रीमिंग के दौरान वीडियो स्ट्रीम बफरिंग।

परिदृश्यडायरेक्टरीतर्क
निर्यात भेजने से पहले PDFtmpभेजने के बाद फ़ाइल की आवश्यकता नहीं
कैश छवियाँCachesसत्रों के बीच उपयोगी
डाउनलोड फ़ाइल स्थानांतरण से पहलेtmpमध्यवर्ती भंडारण
सत्र लॉगtmpकेवल सत्र में प्रासंगिक
संपादन दस्तावेज़tmpसहेजने से पहले संस्करण

यदि डेटा केवल यहाँ और अभी चाहिए — tmp का उपयोग करें। यदि यह अगले सत्र में उपयोगी हो सकता है — Caches का उपयोग करें। यदि डेटा हानि अस्वीकार्य है — Documents का उपयोग करें।

अस्थायी फ़ाइलों का जीवनचक्र

iOS tmp के जीवनचक्र को अन्य सैंडबॉक्स डायरेक्टरी से भिन्न तरीके से प्रबंधित करता है। इस चक्र को समझना ऐप में उचित फ़ाइल भंडारण डिज़ाइन करने के लिए महत्वपूर्ण है।

प्रत्येक लॉन्च पर, iOS tmp के लिए एक नया पथ आवंटित कर सकता है। पिछला पथ अप्राप्य हो जाता है, हालाँकि भौतिक फ़ाइलें डिवाइस के रीस्टार्ट होने तक डिस्क पर रह सकती हैं। यही कारण है कि Apple दृढ़ता से सत्रों के बीच tmp पथ को सहेजने की अनुशंसा नहीं करता।

Apple Tech Note TN2150 (2024) के अनुसार, सिस्टम निम्नलिखित मामलों में tmp को साफ़ कर सकता है: डिवाइस रीस्टार्ट, डिस्क स्थान सीमा तक पहुँचना, ऐप ऑफलोड (Offload)। Caches के विपरीत, tmp कई लॉन्च के बीच भी डेटा संग्रहीत करने के लिए नहीं है — यह सैंडबॉक्स में सबसे कम विश्वसनीय भंडारण है।

डेवलपर को FileManager.removeItem(at:) का उपयोग करके कार्य पूरा करने के बाद स्पष्ट रूप से अस्थायी फ़ाइलों को हटाना चाहिए। tmp में न हटाई गई फ़ाइलें जमा होती हैं और डिस्क स्थान बर्बाद करती हैं — iOS निकट भविष्य में उनकी स्वचालित सफाई की गारंटी नहीं देता।

Temporary Directory बनाम Caches Directory

tmp और Caches की तुलना डेवलपर्स को भंडारण के लिए डायरेक्टरी चुनते समय सही निर्णय लेने में मदद करती है। गलत चुनाव या तो समय से पहले डेटा हानि या अनावश्यक स्थान खपत का कारण बन सकता है।

पैरामीटरTemporary DirectoryCaches Directory
जीवनकालकेवल वर्तमान सत्रसत्रों के बीच (बिना गारंटी)
पथ परिवर्तनहर लॉन्च पर बदल सकता हैस्थिर पथ
स्वचालित सफाईरीबूट पर, ऑफलोड परस्थान की कमी पर
डेवलपर द्वारा हटानाकार्य के बाद अनिवार्यसीमा पार करने पर अनुशंसित
उपयोगमध्यवर्ती संचालनस्थायी कैश

एक व्यावहारिक नियम: उन डेटा के लिए tmp चुनें जो निर्माण के सेकंड या मिनटों के भीतर हटा दिए जाएँगे। उन डेटा के लिए Caches चुनें जिन्हें सत्रों के बीच घंटों या दिनों तक रखना उपयोगी है, लेकिन जिन्हें पुनः बनाया जा सकता है।

tmp के साथ काम करने की सर्वोत्तम प्रथाएँ

Temporary Directory के साथ काम करने में अनुशासन आवश्यक है: चूँकि tmp में डेटा अल्पकालिक होता है और इसका संचय स्थान बर्बाद कर सकता है, डेवलपर्स को कई प्रमुख प्रथाओं का पालन करना चाहिए।

उपयोग के बाद हमेशा फ़ाइलें हटाएँ

FileManager.removeItem(at:) को अस्थायी फ़ाइल के साथ कार्य पूरा करने के तुरंत बाद कॉल किया जाना चाहिए। त्रुटि होने पर भी हटाने की गारंटी के लिए Swift में defer का उपयोग करें।

swift
import Foundation

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

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

// Work with temp file
try "temporary data".write(to: tempURL, atomically: true)
// ... file operation ...
// defer executes when scope exits

दीर्घकालिक डेटा के लिए tmp का उपयोग न करें

यदि डेटा निर्माण के एक घंटे बाद भी आवश्यक हो सकता है — इसे Caches या Application Support में सहेजें। tmp मिनटों के संचालन के लिए है, भंडारण के लिए नहीं।

इन नियमों का पालन सुनिश्चित करता है कि अस्थायी फ़ाइलें जमा न हों, डिस्क स्थान का कुशलतापूर्वक उपयोग हो, और ऐप iOS फ़ाइल सिस्टम सफाई के किसी भी परिदृश्य को सही ढंग से संभालता है।

अक्सर पूछे जाने वाले प्रश्न

क्या Temporary Directory का पथ ऐप के चलने के दौरान बदल सकता है?

आमतौर पर पथ एक सत्र के भीतर नहीं बदलता, लेकिन iOS इसकी गारंटी नहीं देता। दुर्लभ मामलों में, सिस्टम tmp को बदल सकता है जब ऐप बैकग्राउंड से फोरग्राउंड में आता है। इसलिए Apple एक वेरिएबल में संग्रहीत करने के बजाय हर बार पथ की आवश्यकता होने पर NSTemporaryDirectory() को कॉल करने की अनुशंसा करता है।

यदि मैं tmp से फ़ाइलें नहीं हटाता तो क्या होता है?

फ़ाइलें जमा होंगी और डिस्क स्थान लेंगी। iOS डिवाइस रीस्टार्ट पर tmp को साफ़ कर सकता है, लेकिन तब तक ऐप डिस्क स्थान बर्बाद करेगा। महत्वपूर्ण संचय पर, उपयोगकर्ता स्टोरेज सेटिंग्स में देख सकता है कि ऐप बहुत अधिक स्थान ले रहा है।

क्या tmp अस्थायी डेटा को एन्क्रिप्ट करने के लिए उपयुक्त है?

हाँ, आप संवेदनशील डेटा वाली अस्थायी फ़ाइलों के लिए NSFileProtectionComplete के साथ DataProtectionType का उपयोग कर सकते हैं। हालाँकि, ध्यान रखें: यदि फ़ाइल केवल वर्तमान सत्र में पढ़ी जाएगी और फिर हटा दी जाएगी, तो एन्क्रिप्शन अत्यधिक हो सकता है। डेटा प्रकार के आधार पर एन्क्रिप्शन की आवश्यकता का आकलन करें।

बिना टकराव के tmp में अद्वितीय फ़ाइल नाम कैसे बनाएँ?

अद्वितीय पहचानकर्ता उत्पन्न करने के लिए ProcessInfo.processInfo.globallyUniqueString या UUID().uuidString का उपयोग करें। FileManager urlForCreatingTemporaryFile विधि भी प्रदान करता है, जो स्वचालित रूप से tmp में अद्वितीय नाम उत्पन्न करती है। यह समानांतर लेखन के दौरान टकराव की गारंटी देता है।

क्या tmp का आकार App Store समीक्षा को प्रभावित करता है?

अप्रत्यक्ष रूप से — हाँ। Apple डिस्क पर ऐप द्वारा संग्रहीत डेटा की कुल मात्रा पर ध्यान देता है। यदि tmp में गीगाबाइट्स न हटाई गई फ़ाइलें हैं, तो समीक्षक ऐप को अस्वीकार कर सकता है। tmp के लिए अनुशंसित सीमा किसी भी समय 100 MB से अधिक नहीं है। नियमित रूप से tmp साफ़ करें और FileManager के माध्यम से इसका आकार जाँचें।

सारांश

  • Temporary Directory (tmp) — उन डेटा के लिए डायरेक्टरी जिनका जीवनकाल वर्तमान ऐप सत्र तक सीमित है।
  • tmp का पथ लॉन्च के बीच बदल सकता है — इसे स्थायी भंडारण में न सहेजें।
  • सिस्टम डिवाइस रीस्टार्ट या ऐप ऑफलोड पर tmp को साफ़ कर सकता है।
  • tmp की फ़ाइलें iCloud और iTunes बैकअप में शामिल नहीं होती हैं।
  • Caches Directory के विपरीत, tmp सत्रों के बीच भंडारण के लिए नहीं है।
  • डेवलपर को FileManager.removeItem का उपयोग करके अस्थायी फ़ाइलों को स्पष्ट रूप से हटाना चाहिए।
  • Swift में defer का उपयोग करें ताकि संचालन के परिणाम की परवाह किए बिना अस्थायी फ़ाइल हटाने की गारंटी हो।

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें