2016-06-23 16 views
0

ファイル名と拡張子で終わらないファイルをダウンロードしたい。複合URIからファイル名を取得

たとえば、下記のuriはファイルをダウンロードするためのものです。ダウンロード後に保存するファイルの名前(拡張子を含む)を取得する最善の方法は何でしょうか。

https://pixabay.com/static/uploads/photo/2015/10/01/20/32/mushroom-967719_640.jpg?attachment

次のコードは、 "キノコ-967719_640.jpg?添付ファイル" 私は "名。拡張子" を取得することができ、一般的な解決策を探しています

URL url = new URL(FILE_URI); 
........................... 
File downloadingFile = new File(url.getFile()); 
downloadingFile.getName(); 

を返しますそのようなuriのどんな種類からでも。私の頭の上からこれを書く

+2

なぜ結果を使用せずに「添付ファイル」を削除してから、最後の文字(「?」)を削除してください。あなたが1ヤードの線で止まったようです。 – Razgriz

+0

ヒント:subStringメソッド。 –

+0

オハイオ州私はちょうど上記のuriがあなたが得ていたuriではないことに気づいた。親切にあなたの投稿を編集してコードを投稿してください。 – Razgriz

答えて

0

String filename = downloadingFile.getName().substring(0, downloadingFile.getName().length - 11); 

それとも、より読み

int filenameOriginalLength = downloadingFile.getName().length; 
int excessStringLength = 11; // the string "?attachment" is 11 characters long 

String filename = downloadingFile.getName().substring(0, filenameOriginalLength - excessStringLength); 

作るためには、基本的には私たちがここでやっていることを私たちはdownloadingFile.getName()の部分文字列を取得しているということです開始文字(インデックス0)から?attachmentが表示されるまで(文字列の長さ - 添付ファイルの長さ)。

1文字で表示されない場合は、実行して調整して調整する必要があります。excessStringLength

+0

私はそのようなuriの任意の種類から "name.extension"を得ることができる一般的な解決策を探しています。私は私の質問を編集しました。 –

+0

ああ、私の答えは成立するはずですか?試してみると、 'mushroom-967719_640.jpg'が出てきます。 :) – Razgriz

関連する問題