2017-01-08 5 views
2

Ich muss einen Ordner in FTP erstellen und alle Dateien dieses Pfades "mnt/sdcard/yummycandy /" in diesen Ordner hochladen.FTP: Ordner erstellen (Android)

Der Name des neuen Ordners müssen wie in diesem Code, um die Seriennummer des Smartphone sein:

public static String getManufacturerSerialNumber() { 
    String serial = null; 
    try { 
     Class<?> c = Class.forName("android.os.SystemProperties"); 
     Method get = c.getMethod("get", String.class, String.class); 
     serial = (String) get.invoke(c, "ril.serialnumber", "unknown"); 
    } catch (Exception ignored) {} 
    return serial; 
} 

Dies ist der Code, den ich verwende. Ich möchte Sie, bitte, es zu ändern (einen Ordner mit der Seriennummer des Geräts namens Erstellen und Hochladen von Dateien in diesem Ordner)

public static final String TAG = "Contacts"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Thread t = new Thread(new Runnable(){ 
     @Override 
     public void run(){ 
      jetzt(); 
     } 
    }); 
    t.start(); 
    Log.i(TAG, "thread started"); 

} 

public void jetzt() { 
    FTPClient ftpClient = new FTPClient(); 
    try { 
     ftpClient.connect(" HOST SERVER IP "); 

     ftpClient.setSoTimeout(10000); 
     ftpClient.enterLocalPassiveMode(); 
     if (ftpClient.login(" LOGIN ", " PASSWORD ")) { 
      ftpClient.setFileType(FTP.BINARY_FILE_TYPE); 
      ftpClient.setFileTransferMode(FTP.BINARY_FILE_TYPE); 

      final File folder = new File("mnt/sdcard/gamouz"); 

      for (final File fileEntry : folder.listFiles()) { 
       try { 
        FileInputStream fs = new FileInputStream(fileEntry); 
        if (!fileEntry.isDirectory()) { 
         String fileName = fileEntry.getName(); 
         ftpClient.storeFile(fileName, fs); 
         fs.close(); 
         Log.i(TAG, "sent"); 
        } 
       } catch (Exception e) { 
        Log.i(TAG, "error uploading"); 
       } 
      } 
     } 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 
+0

Bitte sagen Sie uns, welches Problem Sie mit Ihrem Code haben. – Okas

+0

Ich möchte, dass Sie den zweiten Code ändern (Erstellen eines Ordners mit Seriennummer des Geräts und Hochladen von Dateien in diesem Ordner) –

Antwort

2

Verwenden Sie die FTPClient.makeDirectory:

final String serial = getManufacturerSerialNumber(); 
ftpClient.makeDirectory(serial); 
ftpClient.changeWorkingDirectory(serial); 

(einige Fehlerüberprüfung hinzufügen)

+0

Vielen Dank !!!! du bist großartig :) –