0

所以我正在使用 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 上将文件上传到的位置。现在是

服务器ip/这里

我有一些文件,所以想将其更改为

服务器ip/文件/这里

我该怎么做呢?

4

1 回答 1

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();
    }
}
于 2013-07-12T21:14:51.743 回答