परिचय
\nफ़ाइल सिस्टम के साथ कार्य करना iOS और macOS के लिए ऐप्लिकेशन विकसित करते समय मुख्य कार्यों में से एक है। चाहे आप उपयोगकर्ता डेटा सहेजने, छवियों को कैश करने या दस्तावेज़ निर्यात करने के लिए ऐप्लिकेशन लिख रहे हों, Swift में फ़ाइलों के साथ कार्य करने की मूल बातें समझना एक अनिवार्य कौशल है। इस लेख में हम फ़ाइल सिस्टम के साथ कार्य करने के व्यावहारिक उदाहरणों पर चर्चा करेंगे: फ़ाइलें बनाना, पढ़ना, लिखना, हटाना और निर्देशिकाओं का प्रबंधन करना।
\nApple एक शक्तिशाली API FileManager प्रदान करता है, जो iOS और macOS दोनों पर फ़ाइल सिस्टम के साथ इंटरैक्ट करने की अनुमति देता है। हम इसे तैयार कोड के साथ वास्तविक उदाहरणों पर देखेंगे।
1. सिस्टम निर्देशिकाओं के पथ प्राप्त करना
\nफ़ाइलों के साथ कार्य शुरू करने से पहले, सही निर्देशिकाओं तक पहुँच प्राप्त करनी होगी। iOS और macOS में प्रत्येक ऐप्लिकेशन एक पृथक सैंडबॉक्स (sandbox) में काम करता है। डेटा संग्रहीत करने के लिए निम्नलिखित पथों का उपयोग करें:
\n\nDocuments निर्देशिका
\nउपयोगकर्ता डेटा संग्रहीत करने के लिए उपयोग किया जाता है, जो ऐप्लिकेशन अपडेट और बैकअप के दौरान सुरक्षित रहना चाहिए।
\nimport Foundation\n\nfunc getDocumentsDirectory() -> URL {\n let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)\n return paths[0]\n}\n\n// उपयोग का उदाहरण\nlet documentsURL = getDocumentsDirectory()\nprint("Documents path: \\(documentsURL.path)")\n\nCaches निर्देशिका
\nअस्थायी फ़ाइलों के लिए जिन्हें पुनः बनाया जा सकता है (जैसे, छवि कैश)।
\nfunc getCachesDirectory() -> URL {\n let paths = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask)\n return paths[0]\n}\n\nLibrary/Application Support निर्देशिका
\nउन डेटा को संग्रहीत करने के लिए जो सीधे उपयोगकर्ता के लिए उपलब्ध नहीं होने चाहिए, लेकिन सुरक्षित रहने चाहिए।
\nfunc getApplicationSupportDirectory() -> URL {\n let paths = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)\n let directory = paths[0]\n // सुनिश्चित करें कि निर्देशिका मौजूद है\n try? FileManager.default.createDirectory(at: directory, withIntermediateDirectories: true)\n return directory\n}\n\n2. फ़ाइलें बनाना और लिखना
\nअब जब हम जानते हैं कि फ़ाइलें कहाँ संग्रहीत करनी हैं, तो आइए उन्हें बनाना और डेटा लिखना सीखें।
\n\nटेक्स्ट डेटा लिखना
\nसबसे सरल तरीका स्ट्रिंग या Data पर write(to:) विधि का उपयोग करना है।
func writeTextFile() {\n let fileName = "example.txt"\n let documentsURL = getDocumentsDirectory()\n let fileURL = documentsURL.appendingPathComponent(fileName)\n \n let content = "Hello, Swift! यह एक परीक्षण फ़ाइल है।"\n \n do {\n try content.write(to: fileURL, atomically: true, encoding: .utf8)\n print("फ़ाइल सफलतापूर्वक बनाई गई: \\(fileURL.path)")\n } catch {\n print("फ़ाइल लिखने में त्रुटि: \\(error.localizedDescription)")\n }\n}\n\nबाइनरी डेटा लिखना (चित्र, JSON)
\nबाइनरी डेटा के साथ कार्य करने के लिए Data का उपयोग करें।
func writeJSONFile() {\n let fileName = "data.json"\n let documentsURL = getDocumentsDirectory()\n let fileURL = documentsURL.appendingPathComponent(fileName)\n \n let dictionary: [String: Any] = [\n "name": "Swift Developer",\n "age": 30,\n "skills": ["iOS", "macOS", "SwiftUI"]\n ]\n \n do {\n let jsonData = try JSONSerialization.data(withJSONObject: dictionary, options: .prettyPrinted)\n try jsonData.write(to: fileURL, options: .atomic)\n print("JSON फ़ाइल सहेजी गई")\n } catch {\n print("त्रुटि: \\(error)")\n }\n}\n\nनिर्देशिकाएँ बनाना
\nकभी-कभी फ़ाइलों को व्यवस्थित करने के लिए नेस्टेड फ़ोल्डर बनाने की आवश्यकता होती है।
\nfunc createSubdirectories() {\n let documentsURL = getDocumentsDirectory()\n let subDirURL = documentsURL.appendingPathCo