可以通过Socket连接
一种方法是在那台机器上部署一个ServerSocket程序,由它读取文件内容并通过Socket传给本机
第二种方法是,如果那台机器上开了ftp服务,你可以通过ftp的相关 *** 作进行,可以使用apache的commons-net包
但两种方法的本质都是Socket连接
import javaioFile;
import javaioFileFilter;
import javautilHashMap;
import javautilMap;
public class T1 {
/存放文件后缀 对应的大小/
private static final Map<String, Long> sizeMap = new HashMap<String, Long>();
/存放文件后缀 对应的个数/
private static final Map<String, Integer> countMap = new HashMap<String, Integer>();
public static void main(String[] args) {
String path = "F:";
filter(path);
for(String key :sizeMapkeySet()) {
Systemoutprintln("后缀:" + key + "\t字节:" + (sizeMapget(key)==null0:sizeMapget(key)) + "\t个数为" + (countMapget(key)==null0:countMapget(key)));
}
}
public static void filter(String path){
File file = new File(path);
filelistFiles(new FileFilter() {
@Override
public boolean accept(File f) {
if(fisDirectory()) {
filter(fgetPath());
return false;
}
String fileName = fgetName();
if(fileNameindexOf("") == -1) {
return false;
}
String suffix =fileNamesplit("\\")[1];//获得文件后缀
//把文件后缀相同的字节数相加
Long size = (sizeMapget(suffix)==null0:sizeMapget(suffix)) + flength();
sizeMapput(suffix, size);
//把文件后缀相同的个数相加
Integer count = (countMapget(suffix)==null0:countMapget(suffix)) + 1;
countMapput(suffix, count);
return false;
}
});
}
}
运行结果太长了,我随便截取点吧:
后缀:1-1 字节:1820 个数为2
后缀:dll_2016-05-23_000 字节:345 个数为1
后缀:dat 字节:20253796 个数为28
后缀:1-2 字节:1302 个数为2
后缀:md 字节:53548 个数为4
后缀:MF 字节:1105 个数为10
后缀:html 字节:745985 个数为75
后缀:lrc 字节:6872 个数为6
后缀:9-2 字节:1478 个数为2
后缀:dll_2016-03-31_000 字节:55 个数为1
后缀:9-3 字节:1436 个数为2
后缀:all 字节:3003366 个数为4
后缀:66b 字节:6786365 个数为1
后缀:withoutimage 字节:383536 个数为4
后缀:eclipse 字节:27666 个数为104
后缀:woff 字节:437588 个数为20
后缀:spr 字节:15084930 个数为311
后缀:mdl 字节:79521996 个数为487
后缀:m3d 字节:199680 个数为3
后缀:JPG 字节:261216 个数为113
后缀:fgd 字节:37819 个数为1
后缀:79d 字节:23795338 个数为3
后缀:79e 字节:8001129 个数为1
后缀:gif 字节:1453085 个数为597
后缀:dll_2016-04-26_000 字节:115 个数为1
后缀:70LeagueV 字节:549361 个数为1
后缀:lst 字节:47492 个数为13
后缀:26q_v1 字节:7284946 个数为1
后缀:sql 字节:87909 个数为6
后缀:11-4 字节:1230 个数为2
后缀:11-3 字节:1804 个数为2
后缀:timer 字节:10452 个数为3
后缀:html5only 字节:467448 个数为4
后缀:dll_2016-05-17_000 字节:115 个数为1
后缀:11-2 字节:1770 个数为2
后缀:11-1 字节:2032 个数为2
后缀:flexslider-min 字节:65025 个数为3
后缀:dll_2016-07-01_000 字节:13427 个数为2
后缀:greenxf 字节:97562 个数为1
特地敲了代码 要采纳啊,我这测试的是F盘 是可以的, 你有什么疑问 可追问我
问了一下我远标出来的程序员哥们,她说,你看下对不对
swing下的包,javaxswingfilechooserFileSystemView;可以获取:
FileSystemView fileSys=FileSystemViewgetFileSystemView(); //获取当前系统文件类型
//获取系统的所有盘符或系统卷类型
for(File f:FilelistRoots()){
Systemoutprintln(fileSysgetSystemDisplayName(f));//获取系统卷标及名字
Systemoutprintln(fileSysgetSystemTypeDescription(f));//获取系统卷的类型
Systemoutprintln(fgetTotalSpace());//获取该卷大小(单位:字节)
Systemoutprintln(fgetFreeSpace());//获取该卷可用大小(单位:字节)
}
使用sigar,
private static void file() throws Exception {
Sigar sigar = new Sigar();
FileSystem fslist[] = sigargetFileSystemList();
for (int i = 0; i < fslistlength; i++) {
Systemoutprintln("分区的盘符名称" + i);
FileSystem fs = fslist[i];
// 分区的盘符名称
Systemoutprintln("盘符名称: " + fsgetDevName());
// 分区的盘符名称
Systemoutprintln("盘符路径: " + fsgetDirName());
Systemoutprintln("盘符标志: " + fsgetFlags());//
// 文件系统类型,比如 FAT32、NTFS
Systemoutprintln("盘符类型: " + fsgetSysTypeName());
// 文件系统类型名,比如本地硬盘、光驱、网络文件系统等
Systemoutprintln("盘符类型名: " + fsgetTypeName());
// 文件系统类型
Systemoutprintln("盘符文件系统类型: " + fsgetType());
switch (fsgetType()) {
case 0: // TYPE_UNKNOWN :未知
break;
case 1: // TYPE_NONE
break;
case 2: // TYPE_LOCAL_DISK : 本地硬盘
// 文件系统总大小
FileSystemUsage usage = null;
usage = sigargetFileSystemUsage(fsgetDirName());
Systemoutprintln(fsgetDevName() + "总大小: " + usagegetTotal() + "KB");
// 文件系统剩余大小
Systemoutprintln(fsgetDevName() + "剩余大小: " + usagegetFree() + "KB");
// 文件系统可用大小
Systemoutprintln(fsgetDevName() + "可用大小: " + usagegetAvail() + "KB");
// 文件系统已经使用量
Systemoutprintln(fsgetDevName() + "已经使用量: " + usagegetUsed() + "KB");
double usePercent = usagegetUsePercent() 100D;
// 文件系统资源的利用率
Systemoutprintln(fsgetDevName() + "资源的利用率: " + usePercent + "%");
break;
case 3:// TYPE_NETWORK :网络
break;
case 4:// TYPE_RAM_DISK :闪存
break;
case 5:// TYPE_CDROM :光驱
break;
case 6:// TYPE_SWAP :页面交换
break;
}
}
return;
}
1、在远程server里搭建一个>
以上就是关于映射网络磁盘驱动器 java 读取空间信息全部的内容,包括:映射网络磁盘驱动器 java 读取空间信息、java程序 做一个这样的程序:统计某磁盘的使用情况 统计在这磁盘中,各种文件的个数和占磁盘空间、java中怎样获取某个磁盘名称等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)