সুইফট 3 (এনএসআরএল সম্পর্কে ভুলে যান)।
let fileName = "20-01-2017 22:47"
let folderString = "file:///var/mobile/someLongPath"
কোনও স্ট্রিংয়ের বাইরে একটি URL তৈরি করতে:
let folder: URL? = Foundation.URL(string: folderString)
// Optional<URL>
// ▿ some : file:///var/mobile/someLongPath
আমরা যদি ফাইলের নামটি যুক্ত করতে চাই। দ্রষ্টব্য, যে অ্যাপেনডিংপথ কম্পোনেন্ট () স্বয়ংক্রিয়ভাবে শতাংশ এনকোডিং যুক্ত করে:
let folderWithFilename: URL? = folder?.appendingPathComponent(fileName)
// Optional<URL>
// ▿ some : file:///var/mobile/someLongPath/20-01-2017%2022:47
যখন আমরা স্ট্রিং করতে চাই কিন্তু মূল অংশটি ছাড়াই (মনোযোগ দিন যে শতাংশের এনকোডিং স্বয়ংক্রিয়ভাবে সরানো হয়েছে):
let folderWithFilename: String? = folderWithFilename.path
// ▿ Optional<String>
// - some : "/var/mobile/someLongPath/20-01-2017 22:47"
আমরা যদি মূল অংশটি রাখতে চাই তবে আমরা এটি করি (তবে শতাংশ এনকোডিং মনে রাখুন - এটি সরানো হয়নি):
let folderWithFilenameAbsoluteString: String? = folderWithFilenameURL.absoluteString
// ▿ Optional<String>
// - some : "file:///var/mobile/someLongPath/20-01-2017%2022:47"
স্ট্রিংয়ের জন্য ম্যানুয়ালি শতাংশ এনকোডিং যুক্ত করতে:
let folderWithFilenameAndEncoding: String? = folderWithFilename.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)
// ▿ Optional<String>
// - some : "/var/mobile/someLongPath/20-01-2017%2022:47"
শতাংশ এনকোডিং অপসারণ করতে:
let folderWithFilenameAbsoluteStringNoEncodig: String? = folderWithFilenameAbsoluteString.removingPercentEncoding
// ▿ Optional<String>
// - some : "file:///var/mobile/someLongPath/20-01-2017 22:47"
শতাংশ-এনকোডিং গুরুত্বপূর্ণ কারণ নেটওয়ার্কের অনুরোধগুলির জন্য ইউআরএলগুলির তাদের প্রয়োজন হয়, যখন ফাইল সিস্টেমে ইউআরএলগুলি সর্বদা কাজ করে না - এটি প্রকৃত পদ্ধতির উপর নির্ভর করে যা সেগুলি ব্যবহার করে। এখানে সতর্কতাই হ'ল এগুলি সরিয়ে ফেলা বা স্বয়ংক্রিয়ভাবে যুক্ত হতে পারে, তাই এই রূপান্তরগুলি সাবধানতার সাথে আরও ভাল ডিবাগ করুন।