
File 类是对文件和文件夹的抽象,包含了对文件和文件夹的多种属性和 *** 作方法。File类的常用方法如下表:
返回
方法
说明
String getName 获取文件名称
String getParent 获取文件的父路径字符串
String getPath 获取文件的相对路径字符串
String getAbsolutePath 获取文件的绝对路径字符串
boolean exists 判断文件或者文件夹是否存在
boolean isFile 判断是不是文件类型
boolean isDirectory 判断是不是文件夹类型
boolean delete 删除文件或文件夹,如果删除成功返回结果为true
boolean mkdir 创建文件夹,创建成功返回true
boolean setReadOnly 设置文件或文件夹的只读属性
long length 获取文件的长度
long lastModified 获取文件的最后修改时间
String[ ] list 获取文件夹中的文件和子文件夹的名称,并存放到字符串数组中
package comhmilyldexp;
import javaioFile;
public class ListFile {
private long[] count = new long[] { 0, 0 };
private File file;
private long[] listFile(String path) {
file = new File(path);
File[] f = filelistFiles();
for (int i = 0; i < flength; i++) {
if (f[i]isDirectory()) {
count[0]++;
thislistFile(f[i]getPath());
} else {
count[1]++;
}
}
return count;
}
/
得到指定路径下的文件和文件夹数量
@param path
要查看的路径
@return object[0]耗时(毫秒)<br>
object[1]文件夹数量<br>
object[2]文件数量
/
public Object[] getFileCount(String path) {
long t = SystemcurrentTimeMillis();
long[] count = thislistFile(path);
t = SystemcurrentTimeMillis() - t;
Object[] o = new Object[] { LongvalueOf(t), LongvalueOf(count[0]),
LongvalueOf(count[1])};
return o;
}
public static void main(String[] args) {
ListFile l = new ListFile();
Object[] count = lgetFileCount("d:\\");
Systemoutprintln(count[0]);
Systemoutprintln(count[1]);
Systemoutprintln(count[2]);
}
}
以前写的一个获取目录下有多少文件和多少文件夹的代码,
可以参考下:)
既然是相对路径"/image/denmarkgif"这个表示就不对了路径最前面加/表示的是绝对路径,你将
"/image/denmarkgif" 改为"image/denmarkgif"试试看
"/audio/denmarkmid"改为"audio/denmarkmid"
试试看吧!
用SystemgetProperty("userdir")+"相对的路径" 即可。
或者直接用
getInstance("images/image-leftjpg");试试。
需要2个变量一个是当前路径,另一个是方案栏中的路径。比较字符串,这个你应该会做了吧。第二个变量的减去第一个变量,然后做适当更改就是你要的相对路径了
楼主 如果你的程序在E盘或者D盘 就没有相对路径了。
如果的程序在“c:\documents and settings\administrator\桌面\” 那么相对路径就应当是c:\documents and settings\administrator\桌面\MY\雨的印记wav -c:\documents and settings\administrator\桌面\” =“/MY/雨的印记wav ”
如果的你程序在桌面下的另一文件夹下例如Test文件下 也就是说程序的路径在:c:\documents and settings\administrator\桌面\Test\
相对路径就应当是“/MY/雨的印记wav ”
一点代表当前目录
两点代表上一目录
在最前面加点的话就告诉file找的时候当前目录找不到,就去相对的路径去找,一般要相对路径的话都是加点,两个点点寻找的返回可能大些,但也值在项目目录里找,直接/的话,这个貌似要在web项目里使用,直接在普通的项目里可能不行,你可以试试不每个file的absolutepath输出一下看看都是什么结果
帮你找了下别人写的:
File类是用来构造文件或文件夹的类,在其构造函数中要求传入一个String类型的参数,用于指示文件所在的路径以前一直使用绝对路径作为参数,其实这里也可以使用相对路径使用绝对路径不用说,很容易就能定位到文件,那么使用了相对路径jvm如何定位文件的呢
按照jdk Doc上的说法”绝对路径名是完整的路径名,不需要任何其他信息就可以定位自身表示的文件。相反,相对路径名必须使用来自其他路径名的信息进行解释。默认情况下,javaio 包中的类总是根据当前用户目录来分析相对路径名。此目录由系统属性 userdir 指定,通常是 Java 虚拟机的调用目录”
相对路径顾名思义,相对于某个路径,那么究竟相对于什么路径我们必须弄明白按照上面jdk文档上讲的这个路径是”当前用户目录”也就是”java虚拟机的调用目录”更明白的说这个路径其实是我们在哪里调用jvm的路径举个例子:
假设有一java源文件Examplejava在d盘根目录下,该文件不含package信息我们进入命令行窗口,然后使用”d:”命令切换到d盘根目录下,然后用”javac Examplejava”来编译此文件,编译无错后,会在d盘根目录下自动生成”Exampleclass”文件我们在调用”java Example”来运行该程序此时我们已经启动了一个jvm,这个jvm是在d盘根目录下被启动的,所以此jvm所加载的程序中File类的相对路径也就是相对这个路径的,即d盘根目录:D:\同时” 当前用户目录”也是D:\在SystemgetProperty(“userdir”);系统变量”userdir”存放的也是这个值
我们可以多做几次试验,把”Exampleclass”移动到不同路径下,同时在那些路径下,执行”java Example”命令启动jvm,我们会发现这个”当前用户目录”是不断变化的,它的路径始终和我们在哪启动jvm的路径是一致的
搞清了这些,我们可以使用相对路径来创建文件,例如:
File file = new File(“atxt”);
FilecreateNewFile();
假设jvm是在”D:\”下启动的,那么atxt就会生成在D:\atxt;
此外,这个参数还可以使用一些常用的路径表示方法,例如””或”\”代表当前目录,这个目录也就是jvm启动路径所以如下代码能得到当前目录完整路径:
File f = new File(“”);
String absolutePath = fgetAbsolutePath();
Systemoutprintln(absolutePath);//D:\
最后要说说在eclipse中的情况:
Eclipse中启动jvm都是在项目根路径上启动的比如有个项目名为blog,其完整路径为:D:\work\IDE\workspace\blog那么这个路径就是jvm的启动路径了所以以上代码如果在eclipse里运行,则输出结果为” D:\work\IDE\workspace\blog”
Tomcat中的情况
如果在tomcat中运行web应用,此时,如果我们在某个类中使用如下代码:
File f = new File(“”);
String absolutePath = fgetAbsolutePath();
Systemoutprintln(absolutePath);
那么输出的将是tomcat下的bin目录我的机器就是” D:\work\server\jakarta-tomcat-5028\bin\”,由此可以看出tomcat服务器是在bin目录下启动jvm的其实是在bin目录下的” catalinabat”文件中启动jvm的
以上就是关于java如何获取文件信息全部的内容,包括:java如何获取文件信息、java 怎么遍历ftp目录下的所有目录以及目录下的文件名称,取出文件的相对路径、JAVA 相对路径取不到文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)