现我有路径“D:\游戏”,请教朋友3个问题:
1.如何获取“游戏”文件夹的总大小(“游戏”文件夹下有多个多级目录)?
2.如何获取“游戏”目录下某个文件夹里的文件数目及总大小,如:D:\游戏\快捷登录?
3.如何判断文件名是否为数字?
1.如何获取“游戏”文件夹的总大小(“游戏”文件夹下有多个多级目录)?
2.如何获取“游戏”目录下某个文件夹里的文件数目及总大小,如:D:\游戏\快捷登录?
3.如何判断文件名是否为数字?
2.同1,记录下遍历的次数就是文件的个数;
3.getName()方法,取得文件夹的名字,采用正则表达式判断文件名是否为中文;
(正则的写法google下)我先给你个( "[\u4e00-\u9fa5]+" 匹配汉字)
try {
Integer.parseInt(fileName);
} catch (NumberFormatException e) {
System.out.println("文件名不是数字!");
return;
}
System.out.println("OK");
public class CalcFile{
static int fileNum = 0;
static int dirNum = 0;
public static void main( String[] args ) {
long length = getFileLength(new File("E:\\游戏"));
System.out.println("文件夹总大小: "+ (float)length/1024/1024/1024 + "GB");
System.out.println("共有目录: "+ dirNum + "个");
System.out.println("共有文件: "+ fileNum + "个");
}
public static long getFileLength(File file) {
if( !file.exists() ) return 0;
if(file.isDirectory()) {
dirNum++;
long l = 0;
for(File f:file.listFiles()) {
l += getFileLength(f);
}
return l;
}else {
fileNum ++;
return file.length();
}
}
}
至于判断数字问题当然是用正则表达式,效率高些嘛public class Test
{
public static void main(String[] args)
{
Pattern p = Pattern.compile( "\\d+" );
String s = "123456.f";//有扩展名要把扩展名截掉,否则不通过
System.out.println(p.matcher( s ).matches());
}
}