2017-03-10 13 views
1

J'utilise le code ci-dessous pour me connecter à un serveur et envoyer un fichier. Le problème est que le fichier peut devenir plus grand avec le temps si je veux:Ajouter du contenu à un fichier dans un serveur FTP sans effacer les anciennes données?

  1. envoyer le fichier nommé « fichier » au serveur

  2. la prochaine fois que je vous écris dans le fichier « fichier » I Je vais effacer l'ancien contenu et écrire de nouvelles données.

  3. Je veux que le nouveau fichier portant le même nom "fichier" que l'ancien mais avec un nouveau contenu différent (puisque l'ancien contenu a été écrit) soit envoyé au serveur.

est-ce qui est faisable suivante: Puis-je récupérer le fichier « fichier » qui a le même nom que celui que je suis l'envoi et au lieu d'être remplacé par le nouveau fichier, le nouveau fichier sera ajouté à la fin de l'ancien fichier combinant les deux contenus?

Voici comment j'envoie le fichier au serveur:

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(); 
} 

Répondre

1

Il suffit de remplacer votre storeFile appel avec le appendFile.

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

merci, j'ai essayé ceci et cela fonctionne parfaitement. – student93