Apple के बारे में बताता है NSSearchPathForDirectoriesInDomains(_:_:_:)
:
आपको FileManager
तरीकों का उपयोग करने पर विचार करना चाहिए urls(for:in:)
और url(for:in:appropriateFor:create:)
कौन से URL को वापस करना चाहिए, जो पसंदीदा प्रारूप हैं।
स्विफ्ट 5 के साथ, FileManager
एक विधि कहा जाता है contentsOfDirectory(at:includingPropertiesForKeys:options:)
। contentsOfDirectory(at:includingPropertiesForKeys:options:)
निम्नलिखित घोषणा है:
निर्दिष्ट निर्देशिका की उथली खोज करता है और निहित मदों के लिए URL लौटाता है।
func contentsOfDirectory(at url: URL, includingPropertiesForKeys keys: [URLResourceKey]?, options mask: FileManager.DirectoryEnumerationOptions = []) throws -> [URL]
इसलिए, दस्तावेज़ निर्देशिका में निहित फ़ाइलों के यूआरएल को पुनः प्राप्त करने के लिए, आप निम्न कोड स्निपेट का उपयोग कर सकते हैं जो FileManager
's urls(for:in:)
और contentsOfDirectory(at:includingPropertiesForKeys:options:)
विधियों का उपयोग करता है :
guard let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { return }
do {
let directoryContents = try FileManager.default.contentsOfDirectory(at: documentsDirectory, includingPropertiesForKeys: nil, options: [])
// Print the urls of the files contained in the documents directory
print(directoryContents)
} catch {
print("Could not search for urls of files in documents directory: \(error)")
}
एक उदाहरण के रूप में, UIViewController
नीचे दिए गए कार्यान्वयन से पता चलता है कि किसी फ़ाइल को ऐप बंडल से दस्तावेज़ निर्देशिका में कैसे बचाया जाए और दस्तावेज़ निर्देशिका में सहेजी गई फ़ाइलों के url कैसे प्राप्त करें:
import UIKit
class ViewController: UIViewController {
@IBAction func copyFile(_ sender: UIButton) {
// Get file url
guard let fileUrl = Bundle.main.url(forResource: "Movie", withExtension: "mov") else { return }
// Create a destination url in document directory for file
guard let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { return }
let documentDirectoryFileUrl = documentsDirectory.appendingPathComponent("Movie.mov")
// Copy file to document directory
if !FileManager.default.fileExists(atPath: documentDirectoryFileUrl.path) {
do {
try FileManager.default.copyItem(at: fileUrl, to: documentDirectoryFileUrl)
print("Copy item succeeded")
} catch {
print("Could not copy file: \(error)")
}
}
}
@IBAction func displayUrls(_ sender: UIButton) {
guard let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { return }
do {
let directoryContents = try FileManager.default.contentsOfDirectory(at: documentsDirectory, includingPropertiesForKeys: nil, options: [])
// Print the urls of the files contained in the documents directory
print(directoryContents) // may print [] or [file:///private/var/mobile/Containers/Data/Application/.../Documents/Movie.mov]
} catch {
print("Could not search for urls of files in documents directory: \(error)")
}
}
}