JAVA获取文件本身所在的磁盘位置

我们在做java开发(纯java程序,或者java web开发)时,经常会遇到需要读取配置文件的需求,如果我们将文件所在位置的信息直接写到程序中,例如:e:\workspace\javagui\bin\com\util这个目录,这样虽然可行,但是,却产生了很大的局限性,因为读取的文件必须要要满足在e:\workspace\javagui\bin\com\util之下才能够被正常读取,否则java抛异常。那如果在没有e盘盘符的服务器上,这样的程序是没办法执行的。所以就需要我们的程序能够读取当前文件的所在位置,从而确定文件的物理磁盘位置,而不是手动写入这个位置。

以下程序,就实现了这个功能

/**

* 得到类的路径,例如e:\workspace\javagui\bin\com\util

* @return

* @throws java.lang.exception

*/

public string getclasspath() throws exception {

try {

string strclassname = getclass().getname();

string strpackagename = "";

if (getclass().getpackage() != null) {

strpackagename = getclass().getpackage().getname();

}

string strclassfilename = "";

if (!"".equals(strpackagename)) {

strclassfilename = strclassname.substring(strpackagename.length() + 1,

strclassname.length());

} else {

strclassfilename = strclassname;

}

url url = null;

url = getclass().getresource(strclassfilename + ".class");

string strurl = url.tostring();

strurl = strurl.substring(strurl.indexof(‘/‘) + 1, strurl

.lastindexof(‘/‘));

//返回当前类的路径,并且处理路径中的空格,因为在路径中出现的空格如果不处理的话,

//在访问时就会从空格处断开,那么也就取不到完整的信息了,这个问题在web开发中尤其要注意

return strurl.replaceall("%20", " ");

} catch (exception ex) {

ex.printstacktrace();

throw ex;

}

}

用下面这个方法获得的superpath,加上你下面的子文件夹,好比222\444。这个保存路径最好放到你的webapps下面,如果你用was,就应该放到相应的目录下,而不能放到你机器的某个盘符上,跟web app走而不是固定的盘符,要知道你的机器上可能有D盘,但是人家的机器上没有D盘的话,这个目录怎么创建呢!

String superPath = Tools.getSuperPath()+"222/444/";
      if ( (new File(superPath+"/").isDirectory())) {
        new File(superPath+"/" +foldername).mkdir();
      }

原文地址:https://www.cnblogs.com/jpfss/p/9488626.html

时间: 2024-10-12 22:07:54

JAVA获取文件本身所在的磁盘位置的相关文章

jsp和java获取文件或路径

1.如何获得当前文件路径常用:(1).Test.class.getResource("")得到的是当前类FileTest.class文件的URI目录.不包括自己!(2).Test.class.getResource("/")得到的是当前的classpath的绝对URI路径.(3).Thread.currentThread().getContextClassLoader().getResource("")得到的也是当前ClassPath的绝对URI

java获取文件的路径问题

java获取文件的路径问题 在java中读取读取文件,经常因为路径的问题找不到,此文用于记录如何定位文件的简单方法. 本基于springboot做的测试,主要是构建工程方便,所用的方法都是JDK中的方法,主要测试有"/"和没有""的问题,以及getResourceAsStream(String string)和getResource(String string)的问题. 1.项目结构 解释一下,主要有两个配置文件,a.properties和b.properties,

fsck获取文件的block信息和位置信息

原文链接:lxw的大数据田地 » hdfs fsck命令查看HDFS文件对应的文件块信息(Block)和位置信息(Locations) 关键字:hdfs fsck.block.locations 在HDFS中,提供了fsck命令,用于检查HDFS上文件和目录的健康状态.获取文件的block信息和位置信息等. fsck命令必须由HDFS超级用户来执行,普通用户无权限. [[email protected] ~]$ hdfs fsck Usage: DFSck [-list-corruptfileb

方法:Linux 下用JAVA获取CPU、内存、磁盘的系统资源信息

CPU使用率: InputStream is = null; InputStreamReader isr = null; BufferedReader brStat = null; StringTokenizer tokenStat = null; // 用来分隔String的应用类 try { System.out.println("Get usage rate of CUP : "); Process process = Runtime.getRuntime().exec(&quo

[C#][VB.NET]查询操作系统所在的磁盘位置

查询操作系统所在的磁盘位置 在蓝色小铺有人发问要如何查询操作系统的所在位置,在VB6的年代,可以参考此网页有非常详细的解说 http://sunh.hosp.ncku.edu.tw/~cww/html/sysprosystem.html 而在.NET中,可以透过Environment?class?来得到系统数据夹的位置 有兴趣的可以参考 http://msdn.microsoft.com/en-us/library/system.environment.aspx 程序 VB.NET ??????

JAVA 获取jar包所在的文件夹

相信很多新手们都可能会像我一样,刚开始在写JAVA程序时,如果需要获取当前类所在的目录(例如:我习惯在开发时,日志就会写在当前程序的目录下,动态建立文件夹及日志文件TXT),那是没有什么问题的,可是打包成jar文件后,问题就来了,总是在获取路径的时候报错,原因是路径根本不正确,或者是得到的路径根本不是自己想要的(例:在jar包中得到的类似路径:file:/H:/JAVA/Test1/MyJar/demo1_fat.jar!/main/main.jar   而直接在Eclipse运行时得到:/H:

java获取它运行所在目录信息

对于Java程序,无论是未打包的还是打包的JAR或WAR文件,有时候都需要获取它运行所在目录信息,如何做到这一点呢?  在Java处理的文件系统中,目录的表示方式有两种:  (1)绝对目录,它以"/"为起始字符,代表从根目录下开始寻找给出的目录,如/c:/java  (2)相对路径,它以不带"/"的目录名表示,表示以当前Java程序正在运行的目录作为起始目录来寻找给出的目录.如java/classes.在相对路径中,有一些特定的字符,可以代表特的的目录,比如,&qu

JAVA获取文件夹下所有的文件

package com.test; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; /** *获取文件夹下所有的文件 */ public class FileTest { private static final Logger logger = LoggerFactory.getLogger(FileTest.class); @Test pub

Java获取文件的后缀名。

/** * 详细步骤 */ private static void test1() { //获取文件的原始名称 String originalFilename = "tim.g (1).jpg";//timg (1).jpg //获取最后一个.的位置 int lastIndexOf = originalFilename.lastIndexOf("."); //获取文件的后缀名 .jpg String suffix = originalFilename.substri