অ্যাপল সম্পর্কে বলেছেন NSSearchPathForDirectoriesInDomains(_:_:_:):
আপনার FileManagerপদ্ধতিগুলি ব্যবহার করে urls(for:in:)এবং url(for:in:appropriateFor:create:)কোনটি ইউআরএল ফেরত দেয় সেগুলি বিবেচনা করা উচিত , যা পছন্দসই বিন্যাস।
সুইফট 5 এর সাথে FileManagerএকটি পদ্ধতি বলা হয় contentsOfDirectory(at:includingPropertiesForKeys:options:)। contentsOfDirectory(at:includingPropertiesForKeys:options:)নিম্নলিখিত ঘোষণা আছে:
নির্দিষ্ট ডিরেক্টরিটির অগভীর অনুসন্ধান সম্পাদন করে এবং অন্তর্ভুক্ত আইটেমগুলির জন্য URL গুলি দেয় returns
func contentsOfDirectory(at url: URL, includingPropertiesForKeys keys: [URLResourceKey]?, options mask: FileManager.DirectoryEnumerationOptions = []) throws -> [URL]
সুতরাং, ডকুমেন্ট ডিরেক্টরিতে থাকা ফাইলগুলির ইউআরএলগুলি পুনরুদ্ধার করার জন্য, আপনি নিম্নলিখিত কোড স্নিপেট ব্যবহার করতে পারেন যা FileManagerএর 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নীচের বাস্তবায়নটি দেখায় যে অ্যাপ্লিকেশন বান্ডেল থেকে নথি ডিরেক্টরিতে কোনও ফাইল কীভাবে সংরক্ষণ করতে হয় এবং কীভাবে ফাইলগুলির ইউআরএলগুলি ডকুমেন্ট ডিরেক্টরিতে সংরক্ষণ করা যায়:
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)")
}
}
}