微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Apache commons net FTPClient storeFile() 创建带有用户名前缀的文件

如何解决Apache commons net FTPClient storeFile() 创建带有用户名前缀的文件

新年快乐! :)

所以,我第一次使用 Apache Commons FTPClient 将文件通过 FTP 传输到大型机 FTP 服务器。我有下面的代码来设置所需的配置,并最终使用 storeFile() FTP 文件,除了下面的一个小问题外,它似乎可以工作。

            ftpClient.login(username,password);
            System.out.println(ftpClient.getReplyString());

            File blankFile = new File("./src/main/resources/BLANK.DAT");
            System.out.println("File exists: "+ blankFile.exists());
            InputStream inputStream = new FileInputStream(blankFile);

            ftpClient.sendSiteCommand("sbdataconn=****.****.*****"); --Hidden from post
            System.out.println(ftpClient.getReplyString());

            ftpClient.sendCommand(FTPCmd.PWD);
            System.out.println(ftpClient.getReplyString());

            ftpClient.sendSiteCommand("lrecl=80 blksize=3120 recfm=FB");
            System.out.println(ftpClient.getReplyString());

            ftpClient.sendSiteCommand("pri=5 sec=15");
            System.out.println(ftpClient.getReplyString());

            ftpClient.storeFile("Destination.File.Name",inputStream);
            System.out.println(ftpClient.getReplyString());

对应的控制台输出日志说:

Connected to ****ftp.****.com.
220-FTPD1 IBM FTP CS V2R3 at *****,06:46:21 on 2021-01-05.
220 Connection will close if idle for more than 15 minutes.
230 USERNAME is logged on.  Working directory is "USERNAME.".

File exists: true
200 SITE command was accepted

257 "'USERNAME.'" is working directory.

200 SITE command was accepted

200 SITE command was accepted

250 Transfer completed successfully.

大型机团队确认他们正在查看该文件,但该文件名为 'USERNAME.Destination.File.Name',但我们需要将该文件命名为 'Destination.File.Name' 以启动下一步处理。我的配置中是否缺少某些内容?或者这是使用 Apache Commons FTP 到大型机时的预期行为。我如何从这里走得更远?任何帮助表示赞赏。谢谢!

解决方法

好吧,看来 FTPClient 的 storeFile() 方法中的文件名必须用单引号 ('') 括起来,才能使用该名称创建文件。所以,解决方法是简单地替换

ftpClient.storeFile("Destination.File.Name",inputStream);

ftpClient.storeFile("'Destination.File.Name'",inputStream);

它按预期工作。

谢谢,祝 2021 年愉快。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?