দ্রুতপথে ফাইলপথ থেকে ফাইলের নাম কীভাবে পাবেন


99

প্রদত্ত ফাইল পাথ স্ট্রিং থেকে ফাইলের নাম কীভাবে পাবেন?

উদাহরণস্বরূপ যদি আমার কাছে কোনও ফাইলপথ স্ট্রিং থাকে

file:///Users/DeveloperTeam/Library/Developer/CoreSimulator/Devices/F33222DF-D8F0-448B-A127-C5B03C64D0DC/data/Containers/Data/Application/5D0A6264-6007-4E69-A63B-D77868EA1807/tmp/trim.D152E6EA-D19D-4E3F-8110-6EACB2833CE3.MOV

এবং আমি হিসাবে রিটার্ন ফলাফল পেতে চাই

trim.D152E6EA-D19D-4E3F-8110-6EACB2833CE3.MOV 

আপনার সাহায্যের জন্য ধন্যবাদ।

উত্তর:


166

উদ্দেশ্য গ

NSString* theFileName = [string lastPathComponent]

সুইফট

let theFileName = (string as NSString).lastPathComponent

4
হতে পারে আপনি সুইফ্টে হাইলাইট করবেন যে এটি কেবল এনএসএসস্ট্রিংয়ের জন্যই কাজ করে, যেমন: var theFileName: NSString = string.lastPathComp घटक // অথবা varFileName: স্ট্রিং = (এনএসএসটিং হিসাবে স্ট্রিং) lastালাইপথপরিবন্ধক
বাবাক

4
URLStringNSString
সুইফ্টে

32

সুইফট 3.x বা সুইফট 4: এটি করার সবচেয়ে সংক্ষিপ্ততম এবং পরিষ্কার উপায় নীচে is এই উদাহরণে urlভেরিয়েবলটি এ জাতীয় প্রকারের মতো এবং সম্পূর্ণরূপে নয় এমন এক্সটেনশন সহ সম্পূর্ণ ফাইলের নামের URLএকটি মানব পাঠযোগ্য Stringফল আমরা পেতে পারি exampleMy file name.txtMy%20file%20name.txt

// Result like: My file name.txt
let fileName = url.lastPathComponent

4
এটি সর্বদা চিত্রগুলির জন্য সম্পত্তি.JPG প্রদান করে।
হর্ষ নিগম

সুইফট 2 উত্তরটি দেখুন যার মধ্যে সুইফট 3 অন্তর্ভুক্ত রয়েছে এবং এটি আরও সুসংগত।
টাইলার এ।

আমারও - @ হর্ষনিগাম
ডান্স্প

30

আপনি যদি বর্তমান ফাইলের নাম যেমন লগিংয়ের উদ্দেশ্যে পেতে চান তবে আমি এটি ব্যবহার করি।

সুইফট 4

URL(fileURLWithPath: #file).lastPathComponent

4
জেনে রাখা ভাল: init(fileURLWithPath path: __shared String, isDirectory: Bool)অতিরিক্ত ফাইল সিস্টেমের অ্যাক্সেস এড়ানোর জন্য ব্যবহার করুন। দস্তাবেজগুলি থেকে: এই ফাংশনটি ফাইলের URL টি ডিরেক্টরি কিনা তা পরীক্ষা করতে কোনও অতিরিক্ত ফাইল সিস্টেম অ্যাক্সেস এড়িয়ে চলে। আপনি যদি উত্তরটি ইতিমধ্যে জানেন তবে আপনার এটি ব্যবহার করা উচিত।
চিহ্নিত করুন

24

সুইফট 2:

var file_name = NSURL(fileURLWithPath: path_to_file).lastPathComponent!

আপনি যদি lastPathComponentএকটি দ্রুত String( যদি কাস্টিংয়ের বিপরীতে NSString) কল করেন তবে এই পদ্ধতিটি সংকলকটি ব্যবহার করতে বলবে ।
i_am_jorf

জেনে রাখা ভাল: init(fileURLWithPath path: __shared String, isDirectory: Bool)অতিরিক্ত ফাইল সিস্টেমের অ্যাক্সেস এড়ানোর জন্য ব্যবহার করুন। দস্তাবেজগুলি থেকে: এই ফাংশনটি ফাইলের URL টি ডিরেক্টরি কিনা তা পরীক্ষা করতে কোনও অতিরিক্ত ফাইল সিস্টেম অ্যাক্সেস এড়িয়ে চলে। আপনি যদি উত্তরটি ইতিমধ্যে জানেন তবে আপনার এটি ব্যবহার করা উচিত।
চিহ্নিত করুন

14

এটা চেষ্টা কর

let filename: String = "your file name"
let pathExtention = filename.pathExtension
let pathPrefix = filename.stringByDeletingPathExtension

আপডেট হয়েছে:

extension String {
    var fileURL: URL {
        return URL(fileURLWithPath: self)
    }
    var pathExtension: String {
        return fileURL.pathExtension
    }
    var lastPathComponent: String {
        return fileURL.lastPathComponent
    }
}

আশা করি এটা সাহায্য করবে.


11

নীচের কোডটি আমার জন্য সুইফট ৪ এক্স এ কাজ করছে

 let filename = (self.pdfURL as NSString).lastPathComponent  // pdfURL is your file url
 let fileExtention = (filename as NSString).pathExtension  // get your file extension
 let pathPrefix = (filename as NSString).deletingPathExtension   // File name without extension
 self.lblFileName.text = pathPrefix  // Print name on Label

7
let theURL = URL(string: "yourURL/somePDF.pdf")  //use your URL
let fileNameWithExt = theURL?.lastPathComponent //somePDF.pdf
let fileNameLessExt = theURL?.deletingPathExtension().lastPathComponent //somePDF

এটি কাজ করার জন্য আপনার ইউআরএলটি অবশ্যই স্ট্রিং নয় এমনই ইউআরএল প্রকারের হতে হবে তাই হাতের আগে স্ট্রিংতে রূপান্তর করবেন না।

আপনি এই কোডটি কীভাবে কাজ করে তা সরাসরি খেলার মাঠে কপি এবং পেস্ট করতে পারেন।


4

আমি ইউআরএলটি ফাইলআরলে পাস করতে পারি, যেমন আমি নীচে করেছি: -

let fileUrl: String = "https://www.himgs.com/imagenes/hello/social/hello-fb-logo.png" // Pass the URL 

let lastPathComponent = URL.init(string: fileUrl)?.lastPathComponent ?? "" // With this you will get last path component

let fileNameWithExtension = lastPathComponent

// এই শেষ পাথ উপাদানটি আপনাকে এক্সটেনশন সহ ফাইলের নাম সরবরাহ করবে।


4
এটি সামান্য প্রশংসিত কোড-কেবল উত্তর। দয়া করে কিছু ব্যাখ্যা যুক্ত করুন। এটি আপভোটগুলির জন্য আপনার সম্ভাবনাগুলিকে উন্নত করবে এবং আপনি এখানে প্রোগ্রামিংয়ের কাজটি নিখরচায় করতে পারবেন এমন ভ্রান্ত ধারণার বিরুদ্ধে লড়াই করতে সহায়তা করবে।
ইউনোশচ

1

আগের দুটি ফোল্ডার সহ অনন্য "ফাইলের নাম" ফর্ম url তৈরি করে

func createFileNameFromURL (colorUrl: URL) -> String {

var arrayFolders = colorUrl.pathComponents

// -3 because last element from url is "file name" and 2 previous are folders on server
let indx = arrayFolders.count - 3
var fileName = ""

switch indx{
case 0...:
    fileName = arrayFolders[indx] + arrayFolders[indx+1] + arrayFolders[indx+2]
case -1:
    fileName = arrayFolders[indx+1] + arrayFolders[indx+2]
case -2:
    fileName = arrayFolders[indx+2]
default:
    break
}


return fileName

}


1

সুইফট> = ৪.২ এ কোনও URL থেকে এক্সটেনশন ছাড়াই ফাইলের নাম পুনরুদ্ধার করতে:

let urlWithoutFileExtension: URL =  originalFileUrl.deletingPathExtension()
let fileNameWithoutExtension: String = urlWithoutFileExtension.lastPathComponent
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.