รับชื่อไฟล์จาก URL


146

ใน Java ให้java.net.URLหรือStringในรูปแบบhttp://www.example.com/some/path/to/a/file.xmlวิธีที่ง่ายที่สุดในการรับชื่อไฟล์คือลบส่วนขยาย? "file"ดังนั้นในตัวอย่างนี้ผมกำลังมองหาบางสิ่งบางอย่างที่ผลตอบแทน

ฉันคิดหลายวิธีในการทำเช่นนี้ แต่ฉันกำลังมองหาสิ่งที่ง่ายต่อการอ่านและสั้น


3
คุณรู้ว่าไม่มีความต้องการที่จะมีชื่อไฟล์ในตอนท้ายหรือแม้แต่บางสิ่งที่ดูเหมือนชื่อไฟล์ ในกรณีนี้อาจมีหรือไม่มีไฟล์.xmlบนเซิร์ฟเวอร์
Miserable Variable

2
ในกรณีนั้นผลลัพธ์จะเป็นสตริงว่างหรืออาจเป็นโมฆะ
Sietse

1
ฉันคิดว่าคุณต้องกำหนดปัญหาให้ชัดเจนยิ่งขึ้น สิ่งที่เกี่ยวกับตอนจบ URLS ต่อไปนี้? .... / abc, .... / abc /, .... / abc.def, .... / abc.def.ghi, .... / abc? def.ghi
Miserable Variable

2
ฉันคิดว่ามันค่อนข้างชัดเจน หาก URL ชี้ไปที่ไฟล์ฉันสนใจในชื่อไฟล์ลบส่วนขยาย (ถ้ามี) ข้อความค้นหาอยู่นอกชื่อไฟล์
Sietse

4
ชื่อไฟล์เป็นส่วนหนึ่งของ url หลังจากเครื่องหมายทับล่าสุด นามสกุลไฟล์เป็นส่วนหนึ่งของชื่อไฟล์หลังจากช่วงเวลาสุดท้าย
Sietse

คำตอบ:


189

แทนที่จะใช้ล้อปรับแต่งวิธีการใช้ Apache commons-io :

import org.apache.commons.io.FilenameUtils;

public class FilenameUtilTest {

    public static void main(String[] args) throws Exception {
        URL url = new URL("http://www.example.com/some/path/to/a/file.xml?foo=bar#test");

        System.out.println(FilenameUtils.getBaseName(url.getPath())); // -> file
        System.out.println(FilenameUtils.getExtension(url.getPath())); // -> xml
        System.out.println(FilenameUtils.getName(url.getPath())); // -> file.xml
    }

}

2
ในเวอร์ชัน commons-io 2.2 อย่างน้อยคุณยังต้องจัดการ URL ด้วยตนเองด้วยพารามิเตอร์ เช่น " example.com/file.xml?date=2010-10-20 "
Luke Quinane

18
FilenameUtils.getName (url) เหมาะสมกว่า
ehsun7b

4
ดูเหมือนว่าแปลกที่จะเพิ่มการพึ่งพาคอมมอนส์ - io เมื่อวิธีแก้ปัญหาง่ายพร้อมใช้งานเพียงแค่ใช้ JDK (ดูURL#getPathและString#substringหรือPath#getFileNameหรือFile#getName)
Jason C

5
คลาส FilenameUtils ได้รับการออกแบบให้ทำงานกับเส้นทาง Windows และ * nix ไม่ใช่ URL
nhahtdh

4
อัปเดตตัวอย่างเพื่อใช้ URL แสดงค่าเอาต์พุตตัวอย่างและใช้พารามิเตอร์การสืบค้น
Nick Grealy

192
String fileName = url.substring( url.lastIndexOf('/')+1, url.length() );

String fileNameWithoutExtn = fileName.substring(0, fileName.lastIndexOf('.'));

17
ทำไมต้องลงคะแนน? นี่มันไม่ยุติธรรม. รหัสของฉันใช้งานได้ฉันเพิ่งตรวจสอบรหัสของฉันหลังจากเห็น downvote
แดงจริง

2
ฉัน upvoting คุณเพราะสามารถอ่านได้มากกว่าเวอร์ชั่นของฉันเล็กน้อย Downvote อาจเป็นเพราะมันไม่ทำงานเมื่อไม่มีนามสกุลหรือไม่มีไฟล์
Sietse

1
คุณสามารถละพารามิเตอร์ที่สองไปที่substring()
Jon Onstott

12
นี้ไม่ทำงานสำหรับค่าhttp://example.org/file#anchor, http://example.org/file?p=foo&q=barมิได้http://example.org/file.xml#/p=foo&q=bar
แมทเธีย Ronge

2
หากคุณอนุญาตString url = new URL(original_url).getPath()และเพิ่มกรณีพิเศษสำหรับชื่อไฟล์ที่ไม่มีค่า.นี้จะใช้งานได้ดี
Jason C

32

หากคุณไม่จำเป็นต้องกำจัดนามสกุลไฟล์นี่เป็นวิธีที่ทำได้โดยไม่ต้องหันไปใช้การจัดการสตริงที่ผิดพลาดได้ง่ายและไม่ต้องใช้ไลบรารีภายนอก ทำงานร่วมกับ Java 1.7+:

import java.net.URI
import java.nio.file.Paths

String url = "http://example.org/file?p=foo&q=bar"
String filename = Paths.get(new URI(url).getPath()).getFileName().toString()

1
@Carcigenicate ฉันเพิ่งทดสอบอีกครั้งและดูเหมือนว่าจะทำงานได้ดี URI.getPath()ส่งคืน a Stringดังนั้นฉันไม่เห็นว่าทำไมจึงไม่ทำงาน
Zoltán

1
nvm ฉันรู้แล้วว่าปัญหาของฉันเกิดจากวิธีที่ Clojure จัดการ var-args ระหว่าง Java-interop การโอเวอร์โหลดของสตริงไม่ทำงานเนื่องจากต้องมีอาร์เรย์ว่างที่จะส่งผ่านเพื่อจัดการ var-args ของ Paths / get มันยังคงใช้งานได้ถ้าคุณกำจัดสายไปgetPathแล้วและใช้ URI โอเวอร์โหลดแทน
Carcigenicate

@Carcigenicate คุณหมายถึงPaths.get(new URI(url))อะไร ดูเหมือนจะไม่ได้ผลสำหรับฉัน
Zoltán

getFileName ต้องใช้ Android API ระดับ 26
Manuela

26

สิ่งนี้ควรเกี่ยวกับการตัดมัน (ฉันจะปล่อยให้ข้อผิดพลาดการจัดการกับคุณ):

int slashIndex = url.lastIndexOf('/');
int dotIndex = url.lastIndexOf('.', slashIndex);
String filenameWithoutExtension;
if (dotIndex == -1) {
  filenameWithoutExtension = url.substring(slashIndex + 1);
} else {
  filenameWithoutExtension = url.substring(slashIndex + 1, dotIndex);
}

1
ข้อผิดพลาดด้านหนึ่งที่คุณต้องพิจารณาคือคุณจะได้สตริงว่างถ้าคุณบังเอิญผ่าน URL ที่ไม่มีชื่อไฟล์ (เช่นhttp://www.example.com/หรือhttp://www.example.com/folder/)
rtpHarry

2
รหัสไม่ทำงาน lastIndexOfไม่ทำงานด้วยวิธีนี้ แต่ความตั้งใจชัดเจน
Robert

Downvoted เพราะจะไม่ทำงานหากส่วนแฟรกเมนต์มีเครื่องหมายทับและเนื่องจากมีฟังก์ชั่นเฉพาะซึ่งบรรลุผลใน apache ทั่วไปและใน Java ตั้งแต่ 1.7
Zoltán

14
public static String getFileName(URL extUrl) {
        //URL: "http://photosaaaaa.net/photos-ak-snc1/v315/224/13/659629384/s659629384_752969_4472.jpg"
        String filename = "";
        //PATH: /photos-ak-snc1/v315/224/13/659629384/s659629384_752969_4472.jpg
        String path = extUrl.getPath();
        //Checks for both forward and/or backslash 
        //NOTE:**While backslashes are not supported in URL's 
        //most browsers will autoreplace them with forward slashes
        //So technically if you're parsing an html page you could run into 
        //a backslash , so i'm accounting for them here;
        String[] pathContents = path.split("[\\\\/]");
        if(pathContents != null){
            int pathContentsLength = pathContents.length;
            System.out.println("Path Contents Length: " + pathContentsLength);
            for (int i = 0; i < pathContents.length; i++) {
                System.out.println("Path " + i + ": " + pathContents[i]);
            }
            //lastPart: s659629384_752969_4472.jpg
            String lastPart = pathContents[pathContentsLength-1];
            String[] lastPartContents = lastPart.split("\\.");
            if(lastPartContents != null && lastPartContents.length > 1){
                int lastPartContentLength = lastPartContents.length;
                System.out.println("Last Part Length: " + lastPartContentLength);
                //filenames can contain . , so we assume everything before
                //the last . is the name, everything after the last . is the 
                //extension
                String name = "";
                for (int i = 0; i < lastPartContentLength; i++) {
                    System.out.println("Last Part " + i + ": "+ lastPartContents[i]);
                    if(i < (lastPartContents.length -1)){
                        name += lastPartContents[i] ;
                        if(i < (lastPartContentLength -2)){
                            name += ".";
                        }
                    }
                }
                String extension = lastPartContents[lastPartContentLength -1];
                filename = name + "." +extension;
                System.out.println("Name: " + name);
                System.out.println("Extension: " + extension);
                System.out.println("Filename: " + filename);
            }
        }
        return filename;
    }

13

หนึ่งในสายการบิน:

new File(uri.getPath).getName

รหัสสมบูรณ์ (ในสกาล่า REPL):

import java.io.File
import java.net.URI

val uri = new URI("http://example.org/file.txt?whatever")

new File(uri.getPath).getName
res18: String = file.txt

หมายเหตุ : URI#gePathฉลาดพอที่จะตัดพารามิเตอร์การสืบค้นและแบบแผนของโปรโตคอลแล้ว ตัวอย่าง:

new URI("http://example.org/hey/file.txt?whatever").getPath
res20: String = /hey/file.txt

new URI("hdfs:///hey/file.txt").getPath
res21: String = /hey/file.txt

new URI("file:///hey/file.txt").getPath
res22: String = /hey/file.txt

1
ทางออกที่ดี!
CybeX

1
นี่เป็นตัวเลือกที่ดีที่สุดเนื่องจากใช้เฉพาะ JDK มาตรฐาน
Alexandros

11

รับไฟล์ชื่อที่มีนามสกุล , โดยไม่ต้องขยาย , เพียงส่วนขยายที่มีเพียง 3 บรรทัด:

String urlStr = "http://www.example.com/yourpath/foler/test.png";

String fileName = urlStr.substring(urlStr.lastIndexOf('/')+1, urlStr.length());
String fileNameWithoutExtension = fileName.substring(0, fileName.lastIndexOf('.'));
String fileExtension = urlStr.substring(urlStr.lastIndexOf("."));

Log.i("File Name", fileName);
Log.i("File Name Without Extension", fileNameWithoutExtension);
Log.i("File Extension", fileExtension);

บันทึกผลลัพธ์:

File Name(13656): test.png
File Name Without Extension(13656): test
File Extension(13656): .png

หวังว่ามันจะช่วยคุณ


9

ฉันมากับสิ่งนี้:

String url = "http://www.example.com/some/path/to/a/file.xml";
String file = url.substring(url.lastIndexOf('/')+1, url.lastIndexOf('.'));

หรือบน URL ที่ไม่มีไฟล์เพียงแค่พา ธ
Sietse

รหัสของคุณถูกต้องเช่นกัน เราไม่ควรตรวจสอบเงื่อนไขเชิงลบอยู่ดี upvote สำหรับคุณ btw ชื่อ dirk kuyt ฟังดูคุ้นหูไหม?
แดงจริง

8

มีหลายวิธี:

Java 7 ไฟล์ I / O:

String fileName = Paths.get(strUrl).getFileName().toString();

Apache Commons:

String fileName = FilenameUtils.getName(strUrl);

ใช้เสื้อ:

UriBuilder buildURI = UriBuilder.fromUri(strUrl);
URI uri = buildURI.build();
String fileName = Paths.get(uri.getPath()).getFileName();

สตริงย่อย:

String fileName = strUrl.substring(strUrl.lastIndexOf('/') + 1);

น่าเสียดายที่โซลูชันJava I Fileของคุณไม่สามารถใช้งานได้ ฉันได้รับการยกเว้น ฉันประสบความสำเร็จกับสิ่งนี้: Paths.get(new URL(strUrl).getFile()).getFileName().toString(); ขอบคุณสำหรับความคิด!
Sergey Nemchinov

7

ง่าย ๆ เข้าไว้ :

/**
 * This function will take an URL as input and return the file name.
 * <p>Examples :</p>
 * <ul>
 * <li>http://example.com/a/b/c/test.txt -> test.txt</li>
 * <li>http://example.com/ -> an empty string </li>
 * <li>http://example.com/test.txt?param=value -> test.txt</li>
 * <li>http://example.com/test.txt#anchor -> test.txt</li>
 * </ul>
 * 
 * @param url The input URL
 * @return The URL file name
 */
public static String getFileNameFromUrl(URL url) {

    String urlString = url.getFile();

    return urlString.substring(urlString.lastIndexOf('/') + 1).split("\\?")[0].split("#")[0];
}

1
@AlexNauda แทนที่url.getFile()ด้วยurl.toString()และจะทำงานกับ#ในเส้นทาง
Sormuras


5

นี่เป็นวิธีที่ง่ายที่สุดใน Android ฉันรู้ว่ามันจะไม่ทำงานใน Java แต่อาจช่วยนักพัฒนาแอปพลิเคชัน Android

import android.webkit.URLUtil;

public String getFileNameFromURL(String url) {
    String fileNameWithExtension = null;
    String fileNameWithoutExtension = null;
    if (URLUtil.isValidUrl(url)) {
        fileNameWithExtension = URLUtil.guessFileName(url, null, null);
        if (fileNameWithExtension != null && !fileNameWithExtension.isEmpty()) {
            String[] f = fileNameWithExtension.split(".");
            if (f != null & f.length > 1) {
                fileNameWithoutExtension = f[0];
            }
        }
    }
    return fileNameWithoutExtension;
}

3

สร้างวัตถุ URL จากสตริง เมื่อแรกคุณมีวัตถุ URL มีวิธีการดึงข้อมูลเกี่ยวกับข้อมูลที่คุณต้องการได้อย่างง่ายดาย

ฉันสามารถแนะนำเว็บไซต์ Javaalmanac ซึ่งมีตัวอย่างมากมาย แต่ที่ได้ย้ายไปแล้ว คุณอาจพบhttp://exampledepot.8waytrips.com/egs/java.io/File2Uri.html ที่น่าสนใจ:

// Create a file object
File file = new File("filename");

// Convert the file object to a URL
URL url = null;
try {
    // The file need not exist. It is made into an absolute path
    // by prefixing the current working directory
    url = file.toURL();          // file:/d:/almanac1.4/java.io/filename
} catch (MalformedURLException e) {
}

// Convert the URL to a file object
file = new File(url.getFile());  // d:/almanac1.4/java.io/filename

// Read the file contents using the URL
try {
    // Open an input stream
    InputStream is = url.openStream();

    // Read from is

    is.close();
} catch (IOException e) {
    // Could not open the file
}

2

หากคุณต้องการรับเฉพาะชื่อไฟล์จาก java.net.URL (ไม่รวมพารามิเตอร์การสืบค้นใด ๆ ) คุณสามารถใช้ฟังก์ชันต่อไปนี้:

public static String getFilenameFromURL(URL url) {
    return new File(url.getPath().toString()).getName();
}

ตัวอย่างเช่น URL อินพุตนี้:

"http://example.com/image.png?version=2&amp;modificationDate=1449846324000"

จะถูกแปลเป็นสตริงเอาต์พุตนี้:

image.png

2

ฉันพบว่ามี URL บางรายการเมื่อส่งผ่านโดยตรงเพื่อFilenameUtils.getNameส่งคืนผลลัพธ์ที่ไม่พึงประสงค์และสิ่งนี้ต้องได้รับการห่อเพื่อหลีกเลี่ยงการหาประโยชน์

ตัวอย่างเช่น,

System.out.println(FilenameUtils.getName("http://www.google.com/.."));

ผลตอบแทน

..

ซึ่งฉันสงสัยว่าใครต้องการอนุญาต

ฟังก์ชั่นต่อไปนี้ดูเหมือนว่าจะทำงานได้ดีและแสดงกรณีทดสอบเหล่านี้บางส่วนและจะส่งคืนnullเมื่อไม่สามารถกำหนดชื่อไฟล์ได้

public static String getFilenameFromUrl(String url)
{
    if (url == null)
        return null;
    
    try
    {
        // Add a protocol if none found
        if (! url.contains("//"))
            url = "http://" + url;

        URL uri = new URL(url);
        String result = FilenameUtils.getName(uri.getPath());

        if (result == null || result.isEmpty())
            return null;

        if (result.contains(".."))
            return null;

        return result;
    }
    catch (MalformedURLException e)
    {
        return null;
    }
}

กรณีนี้รวมกับกรณีทดสอบง่ายๆในตัวอย่างต่อไปนี้:

import java.util.Objects;
import java.net.URL;
import org.apache.commons.io.FilenameUtils;

class Main {

  public static void main(String[] args) {
    validateFilename(null, null);
    validateFilename("", null);
    validateFilename("www.google.com/../me/you?trex=5#sdf", "you");
    validateFilename("www.google.com/../me/you?trex=5 is the num#sdf", "you");
    validateFilename("http://www.google.com/test.png?test", "test.png");
    validateFilename("http://www.google.com", null);
    validateFilename("http://www.google.com#test", null);
    validateFilename("http://www.google.com////", null);
    validateFilename("www.google.com/..", null);
    validateFilename("http://www.google.com/..", null);
    validateFilename("http://www.google.com/test", "test");
    validateFilename("https://www.google.com/../../test.png", "test.png");
    validateFilename("file://www.google.com/test.png", "test.png");
    validateFilename("file://www.google.com/../me/you?trex=5", "you");
    validateFilename("file://www.google.com/../me/you?trex", "you");
  }

  private static void validateFilename(String url, String expectedFilename){
    String actualFilename = getFilenameFromUrl(url);

    System.out.println("");
    System.out.println("url:" + url);
    System.out.println("filename:" + expectedFilename);

    if (! Objects.equals(actualFilename, expectedFilename))
      throw new RuntimeException("Problem, actual=" + actualFilename + " and expected=" + expectedFilename + " are not equal");
  }

  public static String getFilenameFromUrl(String url)
  {
    if (url == null)
      return null;

    try
    {
      // Add a protocol if none found
      if (! url.contains("//"))
        url = "http://" + url;

      URL uri = new URL(url);
      String result = FilenameUtils.getName(uri.getPath());

      if (result == null || result.isEmpty())
        return null;

      if (result.contains(".."))
        return null;

      return result;
    }
    catch (MalformedURLException e)
    {
      return null;
    }
  }
}

1

URL สามารถมีพารามิเตอร์ได้ในตอนท้าย

 /**
 * Getting file name from url without extension
 * @param url string
 * @return file name
 */
public static String getFileName(String url) {
    String fileName;
    int slashIndex = url.lastIndexOf("/");
    int qIndex = url.lastIndexOf("?");
    if (qIndex > slashIndex) {//if has parameters
        fileName = url.substring(slashIndex + 1, qIndex);
    } else {
        fileName = url.substring(slashIndex + 1);
    }
    if (fileName.contains(".")) {
        fileName = fileName.substring(0, fileName.lastIndexOf("."));
    }

    return fileName;
}

/สามารถปรากฏเป็นชิ้นส่วน คุณจะดึงสิ่งที่ผิด
nhahtdh

1

Urlวัตถุในurllibช่วยให้คุณสามารถเข้าถึงเส้นทางของชื่อไฟล์ที่ไม่ใช้ Escape นี่คือตัวอย่างบางส่วน:

String raw = "http://www.example.com/some/path/to/a/file.xml";
assertEquals("file.xml", Url.parse(raw).path().filename());

raw = "http://www.example.com/files/r%C3%A9sum%C3%A9.pdf";
assertEquals("résumé.pdf", Url.parse(raw).path().filename());

0

คำตอบของ andyone ทำซ้ำโดยใช้ split ():

Url u= ...;
String[] pathparts= u.getPath().split("\\/");
String filename= pathparts[pathparts.length-1].split("\\.", 1)[0];

0
public String getFileNameWithoutExtension(URL url) {
    String path = url.getPath();

    if (StringUtils.isBlank(path)) {
        return null;
    }
    if (StringUtils.endsWith(path, "/")) {
        //is a directory ..
        return null;
    }

    File file = new File(url.getPath());
    String fileNameWithExt = file.getName();

    int sepPosition = fileNameWithExt.lastIndexOf(".");
    String fileNameWithOutExt = null;
    if (sepPosition >= 0) {
        fileNameWithOutExt = fileNameWithExt.substring(0,sepPosition);
    }else{
        fileNameWithOutExt = fileNameWithExt;
    }

    return fileNameWithOutExt;
}

0

เกี่ยวกับสิ่งนี้:

String filenameWithoutExtension = null;
String fullname = new File(
    new URI("http://www.xyz.com/some/deep/path/to/abc.png").getPath()).getName();

int lastIndexOfDot = fullname.lastIndexOf('.');
filenameWithoutExtension = fullname.substring(0, 
    lastIndexOfDot == -1 ? fullname.length() : lastIndexOfDot);

0

ในการส่งคืนชื่อไฟล์โดยไม่มีส่วนขยายและไม่มีพารามิเตอร์ให้ใช้ดังต่อไปนี้:

String filenameWithParams = FilenameUtils.getBaseName(urlStr); // may hold params if http://example.com/a?param=yes
return filenameWithParams.split("\\?")[0]; // removing parameters from url if they exist

ในการส่งคืนชื่อไฟล์ที่มีนามสกุลโดยไม่มีพารามิเตอร์ใช้:

/** Parses a URL and extracts the filename from it or returns an empty string (if filename is non existent in the url) <br/>
 * This method will work in win/unix formats, will work with mixed case of slashes (forward and backward) <br/>
 * This method will remove parameters after the extension
 *
 * @param urlStr original url string from which we will extract the filename
 * @return filename from the url if it exists, or an empty string in all other cases */
private String getFileNameFromUrl(String urlStr) {
    String baseName = FilenameUtils.getBaseName(urlStr);
    String extension = FilenameUtils.getExtension(urlStr);

    try {
        extension = extension.split("\\?")[0]; // removing parameters from url if they exist
        return baseName.isEmpty() ? "" : baseName + "." + extension;
    } catch (NullPointerException npe) {
        return "";
    }
}

0

นอกเหนือจากวิธีการขั้นสูงทั้งหมดเคล็ดลับง่าย ๆ ของฉันคือStringTokenizer:

import java.util.ArrayList;
import java.util.StringTokenizer;

public class URLName {
    public static void main(String args[]){
        String url = "http://www.example.com/some/path/to/a/file.xml";
        StringTokenizer tokens = new StringTokenizer(url, "/");

        ArrayList<String> parts = new ArrayList<>();

        while(tokens.hasMoreTokens()){
            parts.add(tokens.nextToken());
        }
        String file = parts.get(parts.size() -1);
        int dot = file.indexOf(".");
        String fileName = file.substring(0, dot);
        System.out.println(fileName);
    }
}

0

หากคุณกำลังใช้สปริงมีผู้ช่วยในการจัดการ URIs นี่คือทางออก:

List<String> pathSegments = UriComponentsBuilder.fromUriString(url).build().getPathSegments();
String filename = pathSegments.get(pathSegments.size()-1);


-1
create a new file with string image path

    String imagePath;
    File test = new File(imagePath);
    test.getName();
    test.getPath();
    getExtension(test.getName());


    public static String getExtension(String uri) {
            if (uri == null) {
                return null;
            }

            int dot = uri.lastIndexOf(".");
            if (dot >= 0) {
                return uri.substring(dot);
            } else {
                // No extension.
                return "";
            }
        }

-1

ฉันมีปัญหาเดียวกันกับคุณ ฉันแก้ไขมันโดยสิ่งนี้:

var URL = window.location.pathname; // Gets page name
var page = URL.substring(URL.lastIndexOf('/') + 1); 
console.info(page)

Java ไม่ใช่ JavaScript
nathanfranke

-3

นำเข้า java.io. *;

import java.net.*;

public class ConvertURLToFileName{


   public static void main(String[] args)throws IOException{
   BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
   System.out.print("Please enter the URL : ");

   String str = in.readLine();


   try{

     URL url = new URL(str);

     System.out.println("File : "+ url.getFile());
     System.out.println("Converting process Successfully");

   }  
   catch (MalformedURLException me){

      System.out.println("Converting process error");

 }

ฉันหวังว่านี่จะช่วยคุณได้


2
getFile () ไม่ได้ทำในสิ่งที่คุณคิด ตามเอกสารจริง ๆ แล้วคือ getPath () + getQuery ซึ่งค่อนข้างไม่มีจุดหมาย java.sun.com/j2se/1.4.2/docs/api/java/net/URL.html#getFile ()
bobince
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.