我打印出X目录中每个文件的文件大小,但我想知道如何添加它们? 这是我的代码
import java.io.File;
public class abcc {
public static void main( String [] args ) {
File nam = new File("C:\\Windows\\System32");
if(nam.exists() && !nam.isDirectory())
System.out.println(nam.getName() + " exists and is " + nam.length()/1024 + " kb");
else if (nam.isDirectory())
System.out.println("");
else
System.out.println("0 ");
if (nam.isDirectory()){
for( File f : nam.listFiles()){
System.out.println( f.length() );
}
}else if(nam.isFile()){
}}}
输出是这样的 1 2 3 如何获得这些数字之和的单个输出? 谢谢
答案 0 :(得分:0)
您需要将总和存储在变量中。所以为它声明一个变量,例如
int totalSize = 0;
在循环内部,您需要为每个文件长度添加totalSize
:
totalSize += f.length();
然后最后打印输出。
答案 1 :(得分:0)
您需要一个总大小的变量,然后继续添加indiavidual文件的大小。由于 f.length()返回长,因此您需要一种可变数据类型长。 我编辑了你的代码,现在它看起来像:
import java.io.File;
public class abcc
{
public static void main( String [] args )
{
long total = 0;
File nam = new File("C:\\Windows\\System32");
if(nam.exists() && !nam.isDirectory())
System.out.println(nam.getName() + " exists and is " + nam.length()/1024 + " kb");
else if (nam.isDirectory())
System.out.println("");
else
System.out.println("0 ");
if (nam.isDirectory()){
for( File f : nam.listFiles()){
System.out.println( f.length() );
total = total+f.length();
}
}else if(nam.isFile()){
}
System.out.println("Total Size : "+total);
}
}
此代码显示最后文件的总大小。
答案 2 :(得分:0)
我建议使用递归子例程。这是我建议的代码:
import java.io.File;
public class DirectoryScan {
public static void main(String[] args){
File toScan = new File("C:\\Windows\\System32");
System.out.println("Total size is: " + getSize(toScan)/1024 + " kb");
}
public static long getSize(File name){
if(name.isDirectory()){//if it is a directory, call this method on all the files in the directory.
long size = 0;
for( File f : name.listFiles()){
size += getSize(f);//get the size for the directory and add the size of that directory to the total size
}
return size;//return the size of this directory
}
else{
System.out.println(name.getName() + " exists and is " + name.length()/1024 + " kb");
return name.length();//return the filesize.
}
}
}
基本上,递归调用getSize(File)(对于每个文件夹/文件)并返回该文件夹/文件的大小。