java web 访问本地文件_Java+JQuery实现网页显示本地文件目录(含源码)

该博客展示了如何使用Java实现从Web应用程序访问本地文件系统,并通过JQuery在网页上显示文件目录。提供了获取磁盘信息、递归遍历文件夹以及格式化文件大小的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

packagecom.uudisk.utils;importjava.io.File;importjava.io.FileInputStream;importjava.text.DecimalFormat;importjava.util.ArrayList;importjava.util.LinkedList;importjava.util.List;importcom.uudisk.domain.DirBean;importcom.uudisk.domain.FileBean;importcom.uudisk.domain.RootBean;public classIterateDir {/** 获取根目录信息*/

public static ListgetDiskInfo(){//获取盘符

File []files=File.listRoots();

Listroots=new ArrayList();for(File file:files){if(file.getTotalSpace()!=0){

RootBean rootBean=newRootBean();

rootBean.setDiskPath(file.getAbsolutePath());

rootBean.setDiskName(file.getAbsolutePath().charAt(0)+"");

rootBean.setDiskSize(FormetFileSize(file.getTotalSpace()));

rootBean.setAvilableSize(FormetFileSize(file.getFreeSpace()));

roots.add(rootBean);

}

}returnroots;

}/** 通过递归得到某一路径下所有的目录及其文件*/

public static DirBean getFiles(String dirPath) throwsException{

File root= newFile(dirPath);

DirBean dirBean=null;if(root.exists()){

dirBean=newDirBean();

String dirSize="";int dirCount=0;

List filelist=new LinkedList();if(root.isDirectory()){

File[] files=root.listFiles();for(File file : files) {

FileBean fileBean=newFileBean();

String realPath=file.getAbsolutePath();

fileBean.setFilePath(realPath);

fileBean.setFileName(getFileName(realPath));if(file.isDirectory()) {

fileBean.setFileType("DIR");//fileBean.setFileSize(FormetFileSize(getFileSize(file)));

fileBean.setFileSize("");

}else{

fileBean.setFileType(getFileType(getFileName(realPath)));

fileBean.setFileSize(FormetFileSize(getFileSizes(file)));

}

filelist.add(fileBean);

}

}else{

dirSize=FormetFileSize(getFileSizes(root));

}

dirBean.setDirCount(dirCount);

dirBean.setDirSize(dirSize);

dirBean.setDirPath(dirPath);

dirBean.setFiles(filelist);

}else{

System.out.println("文件或文件目录不存在");

}returndirBean;

}private staticString getFileType(String fileName) {return fileName.substring(fileName.lastIndexOf(".")+1).toUpperCase();

}//获取文件名

staticString getFileName(String filePath) {

String [] fileItems=filePath.split("\\\\");return fileItems[fileItems.length-1];

}//取得文件大小

public static long getFileSizes(File f) throwsException{long s=0;if(f.exists()) {

FileInputStream fis= null;

fis= newFileInputStream(f);

s=fis.available();

}else{

System.out.println("文件不存在");

}returns;

}//取得文件夹大小

public static long getFileSize(File f)throwsException

{long size = 0;

File flist[]=f.listFiles();for (int i = 0; i < flist.length; i++)

{if(flist[i].isDirectory())

{

size= size +getFileSize(flist[i]);

}else{

size= size +flist[i].length();

}

}returnsize;

}public static String FormetFileSize(long fileS) {//转换文件大小

DecimalFormat df = new DecimalFormat("#.00");

String fileSizeString= "";if (fileS < 1024) {

fileSizeString= df.format((double) fileS) + "B";

}else if (fileS < 1048576) {

fileSizeString= df.format((double) fileS / 1024) + "KB";

}else if (fileS < 1073741824) {

fileSizeString= df.format((double) fileS / 1048576) + "M";

}else{

fileSizeString= df.format((double) fileS / 1073741824) + "G";

}returnfileSizeString;

}public static long getlist(File f){//递归求取目录文件个数

long size = 0;

File flist[]=f.listFiles();

size=flist.length;for (int i = 0; i < flist.length; i++) {if(flist[i].isDirectory()) {

size= size +getlist(flist[i]);

size--;

}

}returnsize;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值