URL থেকে ফাইলের নাম পান


146

জাভাতে, আকারে একটি java.net.URLবা একটি দেওয়া , ফাইলের নাম, বিয়োগ এক্সটেনশন পাওয়ার সহজতম উপায় কী? সুতরাং, এই উদাহরণে, আমি এমন কিছু খুঁজছি যা প্রত্যাবর্তন করবে ।Stringhttp://www.example.com/some/path/to/a/file.xml"file"

আমি এটি করার বিভিন্ন উপায় সম্পর্কে ভাবতে পারি তবে আমি এমন কিছু সন্ধান করছি যা সহজেই পড়া সহজ এবং সংক্ষিপ্ত।


3
আপনি বুঝতে পেরেছেন যে এখানে কোনও ফাইলনামের শেষে নেই, বা এমন কোনও ফাইল নাম যা দেখতে কিছু নেই। এই ক্ষেত্রে, সার্ভারে একটি file.xML থাকতে পারে এবং নাও থাকতে পারে।
দুর্দিনে পরিবর্তনশীল

2
সেক্ষেত্রে ফলাফলটি খালি স্ট্রিং, বা শূন্য হতে পারে।
সিটিস

1
আমি মনে করি আপনার সমস্যাটি আরও স্পষ্টভাবে সংজ্ঞায়িত করা দরকার। নিম্নলিখিত ইউআরএলএস শেষ সম্পর্কে কি? .... / এবিসি, .... / এবিসি /, .... / অ্যাবসি.ডিফ, .... / অ্যাবসি.ডিফ.ঘি, .... / অ্যাবসি? ডিফ.ঘি
পরিবর্তনশীল

2
আমি মনে করি এটি বেশ পরিষ্কার। যদি ইউআরএল কোনও ফাইলের দিকে নির্দেশ করে তবে আমি ফাইলের নাম বিয়োগের এক্সটেনশনে আগ্রহী (যদি এটি থাকে)। অনুসন্ধানের অংশগুলি ফাইলের নামের বাইরে পড়ে।
সিটিস

4
ফাইলের নামটি শেষ স্ল্যাশের পরে url এর অংশ the ফাইল এক্সটেনশন হ'ল শেষ সময়ের পরে ফাইলের নামের অংশ।
সিটিস

উত্তর:


188

চাকাটি পুনরায় উদ্ভাবন করার পরিবর্তে অ্যাপাচি কমন্স-আইও ব্যবহার সম্পর্কে কীভাবে :

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 এ অন্ততপক্ষে আপনাকে এখনও প্যারামিটার সহ ইউআরএল ম্যানুয়ালি হ্যান্ডেল করতে হবে। উদাহরণস্বরূপ " উদাহরণ.
com/file.xML?date=2010-10-20

18
ফাইলের নামUtils.getName (url) একটি ভাল ফিট।
ehsun7b

4
এটা তোলে Commons-IO উপর নির্ভরতা যোগ করার জন্য যখন সহজ সমাধান সহজেই পাওয়া যায় মাত্র JDK ব্যবহার (দেখুন বিজোড় বলে মনে হয় URL#getPathএবং String#substringবা Path#getFileNameবা File#getName)।
জেসন সি 20

5
ফাইলনামটিলস ক্লাসটি ইউআরএল নয়, উইন্ডোজ এবং * নিক্স পাথের সাথে কাজ করার জন্য ডিজাইন করা হয়েছে।
নহধধি

4
একটি ইউআরএল ব্যবহার, নমুনা আউটপুট মানগুলি দেখানো এবং ক্যোয়ারী প্যারামগুলি ব্যবহার করার জন্য আপডেট হওয়া উদাহরণ।
নিক গ্রেলে

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

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

17
ডাউনটা কেন? এটি সার্থবাহ. আমার কোডটি কাজ করে, ডাউনভোটটি দেখে আমি কেবল আমার কোডটি যাচাই করেছি।
রিয়েল লাল

2
আমি আপনাকে উত্সাহিত করেছি, কারণ এটি আমার সংস্করণ থেকে কিছুটা বেশি পঠনযোগ্য। ডাউনভোটটি হতে পারে কারণ যখন কোনও এক্সটেনশন বা ফাইল নেই তখন এটি কাজ করে না।
সিটিস

1
আপনি দ্বিতীয় প্যারামিটারটি ছেড়ে যেতে পারেনsubstring()
জন অনস্টট

12
এই তন্ন তন্ন জন্য কাজ করে না http://example.org/file#anchor, http://example.org/file?p=foo&q=barকিংবাhttp://example.org/file.xml#/p=foo&q=bar
ম্যাথিয়াস রঙ্গে

2
যদি আপনি String url = new URL(original_url).getPath()ফাইলনামগুলির জন্য একটি বিশেষ কেস দেয় এবং যুক্ত না করেন .তবে এটি সঠিকভাবে কাজ করে।
জেসন সি

32

আপনার যদি ফাইল এক্সটেনশন থেকে মুক্তি পাওয়ার প্রয়োজন না হয় তবে এখানে ত্রুটি-প্রবণ স্ট্রিং ম্যানিপুলেশন অবলম্বন না করে এবং বাহ্যিক গ্রন্থাগার ব্যবহার না করেই এটি করার একটি উপায়। জাভা 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
@ কারসিজেনিকেট আমি কেবল এটি আবার পরীক্ষা করেছি এবং মনে হচ্ছে এটি ঠিকঠাক কাজ করেছে। URI.getPath()একটি প্রদান করে String, তাই কেন এটি কাজ করবে না তা দেখতে পাচ্ছি না
জোল্টন

1
Nvm। আমি বুঝতে পারি যে আমার সমস্যাটি জাভা-ইন্টারাপের সময় ক্লোজার কীভাবে ভার-আরগগুলি পরিচালনা করে hand স্ট্রিং ওভারলোড কাজ করছে না কারণ পাথের / ভের-আরগগুলি পরিচালনা করতে খালি অ্যারেটিও পাশ করতে হবে। আপনি যদি কলটি থেকে মুক্তি পান getPathএবং তার পরিবর্তে ইউআরআই ওভারলোড ব্যবহার করেন তবে এটি এখনও কাজ করে।
কারসিজেনিকেট

@ কারসিজেনিকেট মানে Paths.get(new URI(url))? এটি আমার পক্ষে কাজ করে বলে মনে হচ্ছে না
জোল্টন

getFileName এন্ড্রয়েড এপিআই স্তর 26
মানুয়েলা

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
একটি ত্রুটি পরিচালনা করার দিকটি যা আপনি বিবেচনা করতে হবে তা হ'ল আপনি যদি ভুলবশত এটিকে একটি ইউআরএল দেয় যা কোনও ফাইল নাম নেই (যেমন http://www.example.com/বা http://www.example.com/folder/)
rtpHarry

2
কোডটি কাজ করে না। lastIndexOfএইভাবে কাজ করে না। তবে উদ্দেশ্যটি পরিষ্কার।
রবার্ট

ডাউনভোটেড কারণ খণ্ড অংশে স্ল্যাশ থাকলে এটি কাজ করবে না এবং কারণ ডেডিকেটেড ফাংশন রয়েছে যা এপাচি কমন্স এবং জাভাতে 1.7 সাল থেকে অর্জন করেছে
জোলটান

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
চমৎকার সমাধান!
সাইবেএক্স

1
এটি সেরা বিকল্প, কারণ এটি কেবলমাত্র স্ট্যান্ডার্ড জেডিকে ব্যবহার করে
আলেকজান্দ্রোস

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('.'));

বা কোনও ফাইলবিহীন ইউআরএলে, কেবল একটি পথ।
সিটিস

আপনার কোডটিও সঠিক। আমাদের যাইহোক নেতিবাচক অবস্থার জন্য পরীক্ষা করার কথা নেই। আপনার জন্য একটি উত্সাহ বিটিডব্লু নামটি কি ডার্ক কুট শব্দটি পরিচিত?
রিয়েল লাল

8

কিছু উপায় আছে:

জাভা 7 ফাইল I / O:

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

অ্যাপাচি কমন্স:

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);

দুর্ভাগ্যক্রমে, আপনার জাভা 7 ফাইল I / O সমাধানটি আমার পক্ষে কাজ করে না। আমি একটি ব্যতিক্রম পেয়েছিলাম। আমি এটি দিয়ে সফল: Paths.get(new URL(strUrl).getFile()).getFileName().toString(); ধারণার জন্য আপনাকে ধন্যবাদ!
সের্গেই নিমচিনভ

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()এবং এটির সাথে কাজ করে #পাথ।
সোমর্মাস 14'17


5

অ্যান্ড্রয়েডে এটি করার সহজ উপায় এখানে। আমি জানি এটি জাভাতে কাজ করবে না তবে এটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন বিকাশকারীকে সহায়তা করতে পারে।

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 অবজেক্ট তৈরি করুন। প্রথমে যখন আপনার কাছে কোনও ইউআরএল অবজেক্ট থাকে তখন আপনার প্রয়োজনীয় তথ্যের স্নিপেট সহজেই টানতে পারে এমন পদ্ধতি রয়েছে।

আমি জাওয়ালমানাক ওয়েব সাইটের দৃ strongly়ভাবে সুপারিশ করতে পারি যার উদাহরণ রয়েছে প্রচুর, তবে যা পরে চলেছে which আপনি 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();
}

উদাহরণস্বরূপ, এই ইনপুট ইউআরএল:

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

এই আউটপুট স্ট্রিং এ অনুবাদ করা হবে:

image.png

2

আমি খুঁজে পেয়েছি যে কিছু ইউআরএল সরাসরি পাঠানো হলে 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

Urls এর শেষে প্যারামিটার থাকতে পারে, এটি

 /**
 * 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

Urllib এর Urlঅবজেক্টটি আপনাকে পাথের অপরিবর্তিত ফাইলের নামটি অ্যাক্সেস করতে দেয়। এখানে কিছু উদাহরন:

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

অ্যান্ডির উত্তরটি স্প্লিট () ব্যবহার করে আবার করা হয়েছে:

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



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


-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 ()
বোবিন্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.