2016-06-23 11 views
0

Ich möchte eine Datei herunterladen, die nicht mit Dateinamen und Erweiterung endet.Abrufen des Dateinamens von komplexen URI

Zum Beispiel unten genannten uri ist zum Herunterladen einer Datei. Was ist der beste Weg, um den Namen der Datei (einschließlich ihrer Erweiterung) zu erhalten, um sie nach dem Download zu speichern.

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

Der folgende Code "Pilz-967719_640.jpg? Attachment"

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

ich suche allgemeine Lösung zurückkehrt, wo ich die "name.extension" bekommen von irgendeiner Art von solchen Uri.

+2

Warum nicht dieses Ergebnis verwenden und dann nur "Anhang" entfernen und dann das letzte Zeichen ("?") Entfernen. Es scheint, als ob du an der 1-Yard-Linie angehalten hast. – Razgriz

+0

Hinweis: SubString-Methode. –

+0

Oh verdammt, ich habe gerade gemerkt, dass das oben genannte URI nicht die URI ist, die du bekommen hast. Bitte bearbeiten Sie Ihren Beitrag und senden Sie den Code, damit wir Ihnen besser helfen können. – Razgriz

Antwort

0

Schreiben dies aus der Spitze von meinem Kopf:

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

Oder es besser lesbar zu machen

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

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

Im Grunde, was wir hier tun, ist, dass wir den Teil von downloadingFile.getName() sind immer vom Anfangsbuchstaben (Index 0) bis vor dem ?attachment erscheint (Länge Ihres Strings - Länge von? Anhang).

Könnte durch ein Zeichen ausgeschaltet sein, Sie müssten es anpassen, indem Sie es ausführen und excessStringLength anpassen.

+0

Ich suche nach einer allgemeinen Lösung, wo ich die "name.extension" von jeder Art von solchen Uri bekommen kann. Ich habe meine Frage bearbeitet. –

+0

Oh, dann sollte meine Antwort halten? Versuch es, es sollte dir 'pilz-967719_640.jpg' geben. :) – Razgriz

Verwandte Themen