計算遠程服務器的文件夾大小隻需調用 ftpFolderSize(ftpFolderSize,client)
目錄路徑,並且 將對象FTPClient
作爲參數傳遞。它將返回文件夾的大小 。
僅適用於FTP。
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.io.FileUtils;
long dirSize = 0L; //global variable
private long ftpFolderSize(String directoryPath,FTPClient client){
try{
client.changeWorkingDirectory(directoryPath);
FTPFile[] ftpFiles = client.listFiles();
if(client.changeWorkingDirectory(directoryPath))
{
for (FTPFile ftpFile : ftpFiles) {
if(ftpFile.isFile()){
dirSize = dirSize+ftpFile.getSize();// file size is calculated
}
else if(ftpFile.isDirectory())
{
dirSize = dirSize + 4096;//folder minimum size is 4kb
ftpFolderSize(directoryPath+"/"+ftpFile.getName(),client);
}
}
}
}catch (Exception e) {
e.printStackTrace();
}
return dirSize;
}
只是一個說明:我寫了一些[JavaDoc for JSch](http://epaul.github.com/jsch-documentation/simple.javadoc/)。 – 2011-09-28 13:58:58
我無法獲得通過它可以從遠程Unix檢索文件大小的部分。 'SftpATTRS'在我的Jsch jar文件中不是avaibale – 2014-03-25 10:19:08