web-dev-qa-db-ja.com

swiftのファイルパスからファイル名を取得する方法

指定されたファイルパス文字列からファイル名を取得する方法は?

たとえば、次のようなファイルパス文字列がある場合

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 

ご協力ありがとうございました。

79
Ralph

目的C

NSString* theFileName = [string lastPathComponent]

スイフト

let theFileName = (string as NSString).lastPathComponent
135
Sujith Chandran

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
24
Trevor

Swift 2:

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

ロギングなどのために現在のファイル名を取得したい場合は、これを使用します。

スイフト4

URL(fileURLWithPath: #file).lastPathComponent
22
Jose Ramirez

これを試して

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
    }
}

それが役に立てば幸い。

9
Pradumna Patil

以下のコードは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

ハッピーコーディング:)

6
Ashu

以前の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

}

1
Pvlub

Swift> = 4.2のURLから拡張子なしのファイル名を取得するには:

let urlWithoutFileExtension: URL =  originalFileUrl.deletingPathExtension()
let fileNameWithoutExtension: String = urlWithoutFileExtension.lastPathComponent
0
Taiwosam