更改ftp上传位置

时间:2013-07-07 02:09:29

标签: java upload ftp

所以我使用Java通过FTP将文件上传到我的VPS(Linux Centos 5 64位)。我用来上传到我的VPS的代码是

FTPClient client = new FTPClient();
    FileInputStream fis = null;

    try {
        client.connect(serverip);
        client.login("user, pass);
        client.setFileType(FTPClient.BINARY_FILE_TYPE);

//  Create an InputStream of the file to be uploaded
        String filename = Shared.saveLocation + Shared.saveAs;
        fis = new FileInputStream(filename);

//  Store file to server
        client.storeFile(Shared.saveAs, fis);
        client.logout();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (fis != null) {
                fis.close();
            }
            client.disconnect();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

现在代码正常运行,但我想要的是改变它上传文件的VPS的位置。现在是

  

SERVERIP /该处

我有一些文件,所以想把它改成

  

SERVERIP /文件/该处

我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

您可以使用changeCurrentWorkingDirectory()方法更改为所需目录。进入后,您可以像以前一样使用storeFile来编写文件。

如果目录更改成功,则

changeCurrentWorkingDirectory返回true,否则返回false。它需要一个解释为目录路径的字符串。如果路径以斜杠开头,则将其解释为从ftproot目录开始的绝对路径。否则它被解释为相对路径。

修改后的代码可能如下所示:

FTPClient client = new FTPClient();
FileInputStream fis = null;

try 
{
    client.connect(serverip);
    client.login("user, pass);
    client.setFileType(FTPClient.BINARY_FILE_TYPE);

    // change directory to serverip/file/
    if (client.changeWorkingDirectory("/file"))
    {       
        // Create an InputStream of the file to be uploaded
        String filename = Shared.saveLocation + Shared.saveAs;
        fis = new FileInputStream(filename);

        // Store file to server
        client.storeFile(Shared.saveAs, fis);
    }
    client.logout();
} 
catch (IOException e) 
{
    e.printStackTrace();
} 
finally 
{
    try
    {
        if (fis != null) 
        {
            fis.close();
        }
        client.disconnect();
    } 
    catch (IOException e) 
    {
        e.printStackTrace();
    }
}