当前位置 : 首页 » 互动问答 » 正文

从完整路径获取无扩展名的文件名

分类 : 互动问答 | 发布时间 : 2013-04-29 15:59:35 | 评论 : 5 | 浏览 : 77632 | 喜欢 : 18

我正在制作一个程序来存储数据库中excel文件的数据。我希望用户在控制台中提供文件的完整路径,并在程序之后只接受文件名继续。

加载完整路径的代码是:

 String strfullPath =“”;
扫描仪扫描仪=新扫描仪(System.in);
System.out.println(“请输入文件的完整路径”);
strfullPath = scanner.nextLine();
String file = strfullPath.substring(strfullPath.lastIndexOf('/')+ 1);
System.out.println(file.substring(0,file.indexOf('。')));

之后我想: String filename = .......

用户输入的完整路径如下: C:\\ Users \\ myfiles \\ Documents \\ test9.xls

我创建的文件名只包含没有.xls的名称! 任何人都可以帮我解决这个问题吗?

如果我想把文件作为文件“test9.xls”,我会怎么做? -

回答(5)

  • 1楼
  • 我通常使用其他帖子中描述的解决方案:

     import org.apache.commons.io.FilenameUtils;
    
    String basename = FilenameUtils.getBaseName(fileName);
  • 2楼
  • 你可以这样做:

     String fname = file.getName();
    int pos = fname.lastIndexOf(“。”);
    if(pos> 0){
        fname = fname.substring(0,pos);
    }
    

    或者您可以使用 apache.commons.io.FilenameUtils :

     String fileNameWithOutExt = FilenameUtils.removeExtension(fileNameWithExt);
  • 3楼
  • 您可以使用File类来获取文件名:

    文件userFile = new File(strfullPath);
    String filename = userFile.getName();
    

    Using a File对象有很多好处,包括测试文件存在的能力:

     if(userFile.isFile()){
      //是的,这是一个有效的文件(不是目录而不是无效的路径)
    }
    

    在尝试剥离文件之前,还需要检查文件是否有扩展名:

     if(filename.indexOf(“。”)> 0){
        filename = filename.substring(0,filename.lastIndexOf(“。”));
    }
  • 4楼
  • 您可以调用 file.getName()方法,该方法将文件名作为String返回。然后你切断了扩展名。

     String fileName = file.getName();
    fileName = fileName.substring(0,fileName.lastIndexOf(“。”)+ 1);
  • 5楼
  • if(!filename.equals(“”))
    {
            String [] fileparts = filename.split(“\\。”);
            String filename = fileparts [0]; //获得第一部分
    }

相关阅读:

How to convert Set<String> to String[]?

Converting a date string to a DateTime object using Joda Time library

Java reading a file into an ArrayList?

How to clear console in Java - Eclipse SDK

How many spaces will Java String.trim() remove?

How to print all key and values from HashMap in Android?

With android studio no jvm found, JAVA_HOME has been set

String isNullOrEmpty in Java?

The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

What does -XX:MaxPermSize do?