如何使用java按降序打印FTP文件名?

如何使用java按降序打印FTP文件名?,java,sftp,r.java-file,Java,Sftp,R.java File,我必须从我的FTP服务器上以降序获得最后三个上传的文件名、大小及其上传时间。 但我只能打印所有文件的名称、大小和上传时间。 但它足以得到最后三个上传的文件和它的大小,上传时间 我的确切目标是获取FTP服务器的上载详细信息,以确保文件正确上载 有谁能帮我做到这一点吗 package com; import java.io.File; import edu.vt.middleware.crypt.io.TeePrintStream; import java.io.FileOutputStream;

我必须从我的FTP服务器上以降序获得最后三个上传的文件名、大小及其上传时间。 但我只能打印所有文件的名称、大小和上传时间。 但它足以得到最后三个上传的文件和它的大小,上传时间

我的确切目标是获取FTP服务器的上载详细信息,以确保文件正确上载

有谁能帮我做到这一点吗

package com;
import java.io.File;
import edu.vt.middleware.crypt.io.TeePrintStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.net.ConnectException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
import org.apache.commons.io.FileUtils;
import org.apache.commons.net.ftp.FTPFile;
import com.enterprisedt.net.ftp.FTPConnectMode;
import com.enterprisedt.net.ftp.FTPException;
import com.enterprisedt.net.ftp.FTPTransferType;
import com.enterprisedt.net.ftp.Protocol;
import com.enterprisedt.net.ftp.SecureFileTransferClient;
import java.io.File;
import java.io.FilenameFilter;
import edu.vt.middleware.crypt.io.TeePrintStream;
public class getFilesFTP
{
public static File dir=new File("D:/log_FTPCHECK");
 public static String logname="output.txt";
 public static File logfile=new File(dir,logname);
 public static StringBuffer sb=new StringBuffer();
 public static byte[] filesize;

public static void main(String args[]) throws Exception

{
    sb.append("*******************************************
************************************************
***************************************************************");
    sb.append("<p align=center><B><U>SCOPUS FILE UPLOAD CHECK AUTO   
GENERATED LOG REPORT</U></B></p>");
sb.append("************************************************
*************************************************************
*********************************************");

String host="sftp-opsbank2.elsevier.com";
String username="tho-e";
String password="Tho5540b2E";
int count=0;
File Filename;;
Date FileDate;
String invalidfilename=".";
String filetype="";
 //DateFormat dateFormat = new SimpleDateFormat("dd/mm/year");
 //String date1="";
String Lastmodifieddata="";
String Lastmodifieddata_time="";
Date todayDate;
     try{

         SimpleDateFormat dateformat=new SimpleDateFormat("yyyy/MM/dd");
         SimpleDateFormat Format_time=new SimpleDateFormat("yyyy/MM/dd   
HH:mm:ss");
     String timeStamp = 
dateformat.format(Calendar.getInstance().getTime());
        // System.out.println("I am executed2");
           // System.out.println("Todays Date :"+timeStamp );
            sb.append(System.lineSeparator());
            //sb.append("Todays Date :"+timeStamp );    
            sb.append(System.lineSeparator());
           // System.out.println("I am executed2");
            SecureFileTransferClient client=new 
SecureFileTransferClient();            
client.getAdvancedFTPSettings().setConnectMode(FTPConnectMode.PASV);

            client.setRemoteHost(host);
            client.setUserName(username);
            client.setPassword(password);
            client.setProtocol(Protocol.SFTP);
            client.setRemotePort(22);

            client.setContentType(FTPTransferType.BINARY);
         //      sb.append(System.lineSeparator());
             System.out.println("connecting to sftp...");
          //     sb.append(System.lineSeparator());
            sb.append("connecting to sftp...");
             sb.append(System.lineSeparator());
            client.connect();
            System.out.println("SFTP Connection established 
successfully.");
            sb.append(System.lineSeparator());
            sb.append("SFTP Connection established successfully.");
            sb.append(System.lineSeparator());

            String path1="/sftp/content-providers/tho-e/data/incoming
/scopusbk";
            com.enterprisedt.net.ftp.FTPFile[] directroy = 
client.directoryList(path1);
            System.out.println("Total Number of Files Found 
:"+directroy.length);
            sb.append(System.lineSeparator());
            //sb.append("Total Number of Files Found 
:"+directroy.length);
            sb.append(System.lineSeparator());
            int x=0;

            for (int i = 0; i < directroy.length; i++) 
            {
                //System.out.println("entered in for loop");
                Filename= new File(directroy[i].getName());
                FileDate=(Date) directroy[i].lastModified();
                //Filetype=getFileExtension(Filename);
            //  System.out.println("Name:"+Filename);

  Lastmodifieddata=dateformat.format(directroy[i].
  lastModified());            
 Lastmodifieddata_time=Format_time.format(directroy[i].lastModified());

                //filesize=directroy[i].getName().getBytes();
                long size = directroy[i].size();

                if(timeStamp.equalsIgnoreCase(Lastmodifieddata))


                {   
                    if ((directroy[i]).getName().endsWith("txt"))
                    {

                System.out.println("File Name : "+Filename + " ||  
Upload Time :  "+Lastmodifieddata_time+"  || Size  : "+size+" kb");
                 sb.append(System.lineSeparator());
                sb.append("File Name : "+Filename + " ||  Upload Time :  
"+Lastmodifieddata_time+"  ||  Size  : "+size+" kb");
                 sb.append(System.lineSeparator());
                //System.out.println();


                // String path1="/sftp/suppliers/thomdi/signals
/ContentCAR";
                // com.enterprisedt.net.ftp.FTPFile[] directroy = 
client.directoryList(path1);
                count++;
                    //}
            }





                }

                else
                {
                    //System.out.println("No todays files");
                }
     }



            if(count>0)
            {
            System.out.println("Total Number of files :"+count);
            sb.append(System.lineSeparator());
            sb.append("Total Number of file :"+count);
            sb.append(System.lineSeparator());          

            }
            else
            {
                System.out.println("No Files uploaded today....!!!");
                  sb.append("No Files uploaded today....!!!");
            }


          //  PrintStream out = new PrintStream(new 
FileOutputStream("D:/output.txt"));
          //  System.setOut(out);
            if(!logfile.exists())
            {
            logfile.createNewFile();
            }



            FileUtils.writeStringToFile(logfile,sb.toString());

            FTPMailer.sendmailFTP();

            count=0;


     }
     catch(SecurityException se)
     {
         System.out.println("Security credentials mismatch 
issue...Unable to Login ");
         sb.append(System.lineSeparator());
         sb.append("Security credentials mismatch issue...Unable to 
Login ");
         sb.append(System.lineSeparator());
         se.printStackTrace();

     }
     catch(ConnectException ce)
     {
         System.out.println("Unable to Reach FTP Server..");
         System.out.println("Check the Internet Connectivity");
         sb.append(System.lineSeparator());
         sb.append("Unable to Reach FTP Server..");
         sb.append(System.lineSeparator());
         sb.append("Check the Internet Connectivity");
         sb.append(System.lineSeparator());
     }

}
}
package-com;
导入java.io.File;
导入edu.vt.middleware.crypt.io.TeePrintStream;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.io.PrintStream;
导入java.net.ConnectException;
导入java.text.DateFormat;
导入java.text.simpleDataFormat;
导入java.util.Calendar;
导入java.util.Date;
导入javax.mail.MessaginException;
导入javax.mail.internet.AddressException;
导入org.apache.commons.io.FileUtils;
导入org.apache.commons.net.ftp.FTPFile;
导入com.enterprisedt.net.ftp.FTPConnectMode;
导入com.enterpriseedt.net.ftp.FTPException;
导入com.enterprisedt.net.ftp.ftp转换类型;
导入com.enterprisedt.net.ftp.Protocol;
导入com.enterprisedt.net.ftp.SecureFileTransferClient;
导入java.io.File;
导入java.io.FilenameFilter;
导入edu.vt.middleware.crypt.io.TeePrintStream;
公共类GetFileFTP
{
公共静态文件目录=新文件(“D:/log\u FTPCHECK”);
公共静态字符串logname=“output.txt”;
公共静态文件logfile=新文件(dir,logname);
公共静态StringBuffer sb=新StringBuffer();
公共静态字节[]文件大小;
公共静态void main(字符串args[])引发异常
{
某人附加(”*******************************************
************************************************
***************************************************************");
sb.追加(“

SCOPUS文件上传检查自动 生成的日志报告“

”; 某人附加(”************************************************ ************************************************************* *********************************************"); String host=“sftp-opsbank2.elsevier.com”; 字符串username=“tho-e”; 字符串密码=“Tho5540b2E”; 整数计数=0; 文件名;; 日期文件日期; 字符串invalidfilename=“.”; 字符串filetype=“”; //DateFormat DateFormat=新的简化格式(“日/月/年”); //字符串date1=“”; 字符串Lastmodifieddata=“”; 字符串Lastmodifieddata_time=“”; 今日日期; 试一试{ SimpleDataFormat dateformat=新的SimpleDataFormat(“yyyy/MM/dd”); SimpleDateFormat\u time=新的SimpleDateFormat(“yyyy/MM/dd HH:mm:ss”); 字符串时间戳= dateformat.format(Calendar.getInstance().getTime()); //System.out.println(“我被执行2”); //System.out.println(“今天日期:+时间戳”); sb.append(System.lineSeparator()); //sb.附加(“今天日期:+时间戳”); sb.append(System.lineSeparator()); //System.out.println(“我被执行2”); SecureFileTransferClient客户端=新建 SecureFileTransferClient(); getAdvancedFTPSettings().setConnectMode(FTPConnectMode.PASV); client.setRemoteHost(主机); client.setUserName(用户名); client.setPassword(密码); 客户端.setProtocol(Protocol.SFTP); 客户端设置远程端口(22); setContentType(ftptTransferType.BINARY); //sb.append(System.lineSeparator()); System.out.println(“连接到sftp…”); //sb.append(System.lineSeparator()); sb追加(“连接到sftp…”); sb.append(System.lineSeparator()); client.connect(); System.out.println(“SFTP连接已建立 成功。”); sb.append(System.lineSeparator()); sb.append(“成功建立SFTP连接”); sb.append(System.lineSeparator()); String path1=“/sftp/content providers/tho-e/data/incoming /scopusbk”; com.enterprisedt.net.ftp.FTPFile[]directroy= client.directoryList(路径1); System.out.println(“找到的文件总数 :“+directroy.length); sb.append(System.lineSeparator()); //sb.append(“找到的文件总数 :“+directroy.length); sb.append(System.lineSeparator()); int x=0; for(int i=0;i