gpt4 book ai didi

java - 当FTP路径有多个子目录时上传空白文件

转载 作者:行者123 更新时间:2023-11-30 04:44:33 25 4
gpt4 key购买 nike

下面的代码将文件上传到FTP服务器

public class UploadFile {
static ResourceBundle rsBundle = ResourceBundle.getBundle("com.mindcraft.resources.resources");
public void upload(String host,String username,String pwd,String inputfile,String uploadpath,String zip_filename)
{
//String zip_file_name= rsBundle.getString("zip_filename");
FTPClient ftp=new FTPClient();
try {
int reply;
ftp.connect(host);
ftp.login(username, pwd);
reply = ftp.getReplyCode();
System.out.println("reply1" + reply);
if(!FTPReply.isPositiveCompletion(reply))
{
ftp.disconnect();

}
System.out.println("FTP server connected.");
ftp.setFileType(FTP.BINARY_FILE_TYPE);
InputStream input= new FileInputStream(inputfile);

System.out.println("Directory.." + ftp.printWorkingDirectory());

String dirTree=uploadpath;
boolean dirExists = true;
String[] directories = dirTree.split("/");
for (String dir : directories )
{
if (!dir.isEmpty() )
{
if (dirExists)
{
dirExists = ftp.changeWorkingDirectory(dir);
ftp.storeFile(dirTree+zip_filename,input);
System.out.println("1..");
}
if (!dirExists)
{

System.out.println("dir tree" + ftp.printWorkingDirectory());


if (!ftp.makeDirectory(dir))
{

throw new IOException("Unable to create remote directory '" + dir + "'. error='" + ftp.getReplyString()+"'");
}
if (!ftp.changeWorkingDirectory(dir))
{

throw new IOException("Unable to change into newly created remote directory '" + dir + "'. error='" + ftp.getReplyString()+"'");
}
System.out.println("dir tree" + ftp.printWorkingDirectory());
ftp.storeFile(dirTree+zip_filename,input);
}

}
}

System.out.println( ftp.getReplyString() );
input.close();
ftp.logout();
}
catch(Exception e)
{
System.out.println("err"+ e);
e.printStackTrace();
}
finally
{
if(ftp.isConnected())
{
try
{
ftp.disconnect();

}
catch(Exception ioe)
{

}

}

}
}
}

当上传路径有一个文件夹时,它工作正常,例如。 /文件夹1/

但是当存在子文件夹或多个目录时,它会上传字节0的空白文件,例如。 /文件夹1/文件夹2/

可能是什么问题?

最佳答案

ftp.storeFile(dirTree+zip_filename,input); 应在 for 创建所有子目录并转到正确的目录之后调用。

顺便说一句,本可以帮助引入一个函数 makeAndGoToDirectory。

关于java - 当FTP路径有多个子目录时上传空白文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11375440/

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