指定されたファイルパス文字列からファイル名を取得する方法は?
たとえば、次のようなファイルパス文字列がある場合
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
ご協力ありがとうございました。
目的C
NSString* theFileName = [string lastPathComponent]
スイフト
let theFileName = (string as NSString).lastPathComponent
Swift 3.xまたはSwift 4:これを行う最短かつ最もクリーンな方法は以下のとおりです。この例では、url
変数はURL
のタイプであるため、My file name.txt
やNot like My%20file%20name.txt
などの拡張子を持つ完全なファイル名の人間が読めるString
の結果を得ることができます。
// Result like: My file name.txt
let fileName = url.lastPathComponent
Swift 2:
var file_name = NSURL(fileURLWithPath: path_to_file).lastPathComponent!
ロギングなどのために現在のファイル名を取得したい場合は、これを使用します。
スイフト4
URL(fileURLWithPath: #file).lastPathComponent
これを試して
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
}
}
それが役に立てば幸い。
以下のコードはSwift 4.Xで私のために働いています
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
ハッピーコーディング:)
以前の2つのフォルダーを含む一意の「ファイル名」フォーム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
}
Swift> = 4.2のURLから拡張子なしのファイル名を取得するには:
let urlWithoutFileExtension: URL = originalFileUrl.deletingPathExtension()
let fileNameWithoutExtension: String = urlWithoutFileExtension.lastPathComponent