
你通过递归得到文件列表,但是你通过重写compare和equals方法,比较文件大小这个有待商榷,一般文件大小是通过字节数来判断的,通用方法为Filelength()方法,给你个文件参考一下,没有package,很简单,文件夹路径自己得改一下,否则找不到文件。
可以参考以下两种方法,以Java sdk为例,比如获取bucket hpdemo下log文件夹里面所有object大小
1 获取所有object时可以指定prefix前缀,如下,定义一个变量累加每个object大小就可以了
OSSClient client = new OSSClient(OSS_ENDPOINT, ACCESS_ID, ACCESS_KEY);
String bucketName = "hpdemo";
ObjectListing listing = clientlistObjects(bucketName, "log");
// 遍历所有Object
for (OSSObjectSummary objectSummary : listinggetObjectSummaries()) {
Systemoutprintln(objectSummarygetKey());
Systemoutprintln(objectSummarygetSize());//输出每个object文件的大小
}
2 如果只想要统计一个文件夹下的所有文件,子文件夹不统计,比如log文件夹里面有很多日志文件,也有子文件夹,可以参考如下
ListObjectsRequest listObjectsRequest = new ListObjectsRequest(bucketName);
// 设置参数
listObjectsRequestsetDelimiter("/");
listObjectsRequestsetPrefix("log/");
ObjectListing listing = clientlistObjects(listObjectsRequest);
// 遍历所有Object
for (OSSObjectSummary objectSummary : listinggetObjectSummaries()) {
Systemoutprintln(objectSummarygetKey());
Systemoutprintln(objectSummarygetSize());//输出object的大小
}
// 遍历所有CommonPrefix
Systemoutprintln("CommonPrefixs:");
for (String commonPrefix : listinggetCommonPrefixes()) {
Systemoutprintln(commonPrefix);
}
当使用 Java API *** 作 HDFS 时,可以使用 FileSystemlistFiles() 方法来获取文件列表。该方法接受一个 Path 对象,表示要列举文件的目录,并返回一个 RemoteIterator<LocatedFileStatus> 对象,该对象可用于迭代目录中的文件。
例如,下面的代码演示了如何使用 listFiles() 方法来获取 HDFS 上的文件列表:
// 定义 HDFS 连接配置
Configuration conf = new Configuration();
// 获取 HDFS FileSystem 对象
FileSystem fs = FileSystemget(conf);
// 定义要列举文件的目录
Path dirPath = new Path("/user/hadoop");
// 获取文件列表
RemoteIterator<LocatedFileStatus> fileIter = fslistFiles(dirPath, true);
// 遍历文件列表
while (fileIterhasNext()) {
// 获取当前文件信息
LocatedFileStatus fileStatus = fileIternext();
// 输出文件名称和大小
Systemoutprintln(fileStatusgetPath()getName() + " : " + fileStatusgetLen());
}
public File getFile(){
final JFileChooser fc = new JFileChooser();
fc setFileSelectionMode(JFileChooser FILES_AND_DIRECTORIES);
// JFileChooser FILES_ONLY
// JFileChooser DIRECTORIES_ONLY
int returnVal = fc showOpenDialog(this);
File file_choosed = fc getSelectedFile();
return file_choosed;
lishixinzhi/Article/program/Java/hx/201311/27130
以上就是关于JAVA 对文件夹下所有文件按文件大小进行排序,请问哪里有问题全部的内容,包括:JAVA 对文件夹下所有文件按文件大小进行排序,请问哪里有问题、如何获取oss文件夹大小、使用Java API *** 作HDFS时,_方法用于获取文件列表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)