将内容添加到FTP服务器中的文件而不删除旧数据?

时间:2017-03-10 00:13:55

标签: android ftp apache-commons-net ftp-server

我使用下面的代码连接到服务器并发送文件。问题是文件可能会随着时间的推移变大,所以我想:

  1. 发送名为" file"的文件到服务器

  2. 下次我写入文件"文件"我将删除旧内容并编写新数据。

  3. 我想要一个名字相同的新文件" file"作为旧的但具有不同的新内容(因为旧的内容已被写入)将被发送到服务器。

  4. 以下是否可行:我可以获取文件" file"该名称与我发送的名称相同,而不是由新文件替换,新文件将添加到旧文件末尾并合并两个内容?

    这就是我将文件发送到服务器的方式:

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    
    StrictMode.setThreadPolicy(policy);
    FTPClient con = null;
    FileInputStream fileIn= null;
    //Find the directory for the SD Card using the API
    File sdcard = Environment.getExternalStorageDirectory();
    
    //Get the text file
    File file = new File(sdcard,"file");
    
    try {
        con = new FTPClient();
        con.connect("****************", **);
        showServerReply(con);
    
        if (con.login("***********", "*******")) {
            con.enterLocalPassiveMode();
            con.setFileType(FTP.BINARY_FILE_TYPE);
            String data=String.valueOf(Environment.getExternalStorageDirectory())+"/file";
            fileIn = new FileInputStream(new File(data));
    
            boolean result = con.storeFile("/"+android.os.Build.MODEL+".txt", fileIn);
            fileIn.close();
            con.logout();
            con.disconnect();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    

1 个答案:

答案 0 :(得分:1)

只需将storeFile来电替换为appendFile

boolean result = con.appendFile("/"+android.os.Build.MODEL+".txt", fileIn);