gpt4 book ai didi

java - 如何使用 java 列出仅具有 txt 扩展名的目录的 FTP 文件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:16:04 25 4
gpt4 key购买 nike

我的 FTP 服务器目录中有许多扩展名为 .txt 的 FTP 文件。

现在我想使用 java 列出具有 .txt 扩展名的文件。

我试过 .endsWith(.txt),但它显示编译时错误:

Cannot cast from FTPFile to String

谁能帮我实现这个目标?

下面是我的代码:

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.sql.Date;
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 void main(String args[]) throws
SecurityException,FTPException, IOException,ConnectException,
AddressException, MessagingException

{

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="";
Date todayDate;





try{

SimpleDateFormat dateformat=new SimpleDateFormat("yyyy/MM/dd");
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());

if(timeStamp.equalsIgnoreCase(Lastmodifieddata) )


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

System.out.println("File Name:"+Filename +" ||Last
Modified : "+Lastmodifieddata);
sb.append(System.lineSeparator());
sb.append("File Name:"+Filename +" ||Last Modified :
"+Lastmodifieddata);
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");
}
}
System.out.println("Total Number of file :"+count);
sb.append(System.lineSeparator());
sb.append("Total Number of file :"+count);
sb.append(System.lineSeparator());
// 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("This belongs to security exception");
sb.append(System.lineSeparator());
sb.append("This belongs to security exception");
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());
}

}
}

最佳答案

改变

if (((String) directroy[i]).endsWith("txt"))

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

编辑:

long size = directroy[i].getSize();//get file size

long getSize(): gets file size in bytes.

关于java - 如何使用 java 列出仅具有 txt 扩展名的目录的 FTP 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35285119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com