[解決済み] Swiftでファイル拡張子からファイル名を分割する方法は?
2023-03-19 05:32:58
質問
バンドル内のファイル名を指定して、そのファイルをSwiftアプリにロードしたい。だから私はこのメソッドを使用する必要があります。
let soundURL = NSBundle.mainBundle().URLForResource(fname, withExtension: ext)
何らかの理由で、このメソッドはファイル名とファイル拡張子を分離する必要があります。すばらしい、それはほとんどの言語で2つを分離するのに十分簡単です。しかし、今のところ、私はSwiftでそうであることを発見していません。
だから、ここに私が持っているものがあります。
var rt: String.Index = fileName.rangeOfString(".", options:NSStringCompareOptions.BackwardsSearch)
var fname: String = fileName .substringToIndex(rt)
var ext = fileName.substringFromIndex(rt)
1行目にタイピングを入れないと、その後の2行でエラーになります。入れると、1行目でエラーになります。
Cannot convert the expression's type '(UnicodeScalarLiteralConvertible, options: NSStringCompareOptions)' to type 'UnicodeScalarLiteralConvertible'
拡張子からファイル名を分割するにはどうすればよいですか?これを行うには、いくつかのエレガントな方法がありますか?
SwiftはObjective Cよりもずっとエレガントな言語のように思えたので、私はすっかり興奮していました。しかし今、私はそれ自身の面倒さがあることを発見しています。
2度目の挑戦 文字列検索の方法を自作することにしました。
func rfind(haystack: String, needle: Character) -> Int {
var a = Array(haystack)
for var i = a.count - 1; i >= 0; i-- {
println(a[i])
if a[i] == needle {
println(i)
return i;
}
}
return -1
}
しかし、次の行でエラーが発生します。
var rt: String.Index = rfind(fileName, needle: ".")
:
'Int' is not convertible to 'String.Index'
キャストがないと、その後の2行でエラーになります。
どなたかこのファイル名と拡張子を分割するのを手伝っていただけませんか?
どのように解決するには?
これはSwift 2、Xcode 7での話です。拡張子がすでに付いているファイル名がある場合、最初のパラメータとして完全なファイル名を渡し、2番目のパラメータとして空文字列を渡せばよいのです。
let soundURL = NSBundle.mainBundle()
.URLForResource("soundfile.ext", withExtension: "")
拡張パラメータとしてnilを指定しても動作します。
URLがあり、何らかの理由でファイル名そのものを取得したい場合、このような方法があります。
soundURL.URLByDeletingPathExtension?.lastPathComponent
スウィフト4
let soundURL = NSBundle.mainBundle().URLForResource("soundfile.ext", withExtension: "")
soundURL.deletingPathExtension().lastPathComponent
関連
-
dyld: ライブラリがロードされていません。エラーの解決
-
[解決済み] Javaで文字列を分割する方法
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] Pythonでパスから拡張子なしでファイル名を取得する方法は?
-
[解決済み] 文字列から空白を取り除くには?
-
[解決済み] テキストファイルを文字列変数に読み込んで、改行を除去するには?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Swiftでindexとelementでループを反復させる方法
-
[解決済み] SwiftでStringを配列に分割する?
-
[解決済み】Bashでファイル名と拡張子を抽出する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
クラッシュエラー libc++abi.dylib: NSException 型のキャッチできない例外で終了_allanGold のブログ - ProgrammerITS401
-
IOSラーニングノート「このクラスはxxxのキーバリューコーディングに対応していません」問題解決
-
EXC_BAD_ACCESS (code=2, address=0x0)
-
iOSコンパイルポッドでエラー CocoaPods could not find compatible versions for pod "XXXXX" が報告される。
-
[解決済み] 文字列の長さを取得する
-
[解決済み] UITableViewの下にある余分なセパレータをなくす
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
-
[解決済み] SwiftでiOSキーボードを任意の場所でタッチして閉じる
-
[解決済み] UIImageのサイズを変更する最も簡単な方法?
-
[解決済み] 16進カラーバリューの使用方法