重命名ftp文件夹Java中的文件时出错
下面是我读取文件并在以后重命名的代码。Im使用的是apache commons.net 3.0.1重命名ftp文件夹Java中的文件时出错,java,apache,file,ftp,apache-commons-net,Java,Apache,File,Ftp,Apache Commons Net,下面是我读取文件并在以后重命名的代码。Im使用的是apache commons.net 3.0.1 client.connect(localhost); boolean login = client.login("username", "password"); if(login){ System.out.println("login successful"); boolean chdir = client.changeWorkingDirectory("/home/folder1
client.connect(localhost);
boolean login = client.login("username", "password");
if(login){
System.out.println("login successful");
boolean chdir = client.changeWorkingDirectory("/home/folder1/child/");
String url = client.printWorkingDirectory(); // EDIT
FTPFile[] result = client.listFiles(url, filter);
if (result != null && result.length > 0) {
for (FTPFile aFile : result) {
try{
String filename = aFile.getName();
InputStream is= client.retrieveFileStream(filename);
br = new BufferedReader(new InputStreamReader(is));
while((line = br.readLine()) != null){
System.out.println("the line is"+line);
}
}
finally{
if(br!=null){
try{
br.close();
String oldFilename =url + "/" +aFile.getName();
String newFilename = "PRO"+aFile.getName();
boolean rename = client.rename(oldFilename, newFilename);
if(rename){
System.out.println("renamed");
}
else{
System.out.println("Error in renaming");
}
}
文件无法重命名,程序将打印
重命名文件时出错(cz boolean rename=false)
我举出了不同的例子。但所有这些似乎都显示出同样的问题。
该文件在过滤和读取后被拾取,没有任何问题
如果有人能指出我做错了什么,那将非常有帮助
这里,url
是stringurl=client.printWorkingDirectory()代码>
我尝试了相对路径和绝对路径。并且只为旧文件名
提供完整路径,只为新文件名
提供文件名。两者都不起作用
编辑
更改目录之前,url将是根目录的/
。
更改目录后,url将为/home/folder1/child/
。这是文件存在的位置。InputStream retrieveFileStream(字符串远程)
:此方法返回一个InputStream
,可用于从远程文件读取字节。这种方法使我们能够更好地控制如何读写数据。但使用此方法时有两个要点:
之后必须调用方法completePendingCommand()
,以完成文件传输并检查其返回值,以验证下载是否确实成功完成
boolean success = ftpclient.completePendingCommand();
if (success){
System.out.println("File #2 has been downloaded successfully.");
}
我们必须显式地关闭InputStream
is.close()//is=输入流
您有什么例外吗?如果是,则添加stacktrace。@Jens似乎没有例外。重命名文件时出现错误(cz boolean rename=false)。
正在您的代码中打印?@Jens It prints“重命名时出现错误”是假设。重命名是否独立工作(如果不先下载文件)?非常有用