如何使用java按降序打印FTP文件名?
我必须从我的FTP服务器上以降序获得最后三个上传的文件名、大小及其上传时间。 但我只能打印所有文件的名称、大小和上传时间。 但它足以得到最后三个上传的文件和它的大小,上传时间 我的确切目标是获取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;
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