Копирование файла с диска Samba в каталог Android SDCard - PullRequest
1 голос
/ 17 ноября 2011

Я новичок в Android и Samba. Я пытаюсь использовать копию JCIFS. Чтобы скопировать файл из каталога Samba в каталог «Загрузка» в разделе sdcard на устройстве Android 3.1. Вот мой код:

from = new SmbFile("smb://username:password@a.b.c.d/sandbox/sambatosdcard.txt");
File root = Environment.getExternalStorageDirectory();
File sourceFile = new File(root + "/Download", "SambaCopy.txt");
to = new SmbFile(sourceFile.getAbsolutePath());
from.copyTo(to);

Я получаю исключение MalformedURLE для файла «to». Есть ли способ обойти эту проблему, используя метод copyTo, или есть альтернативный способ скопировать файл из папки samba в папку sdcard, используя JCIFS или любым другим способом? Спасибо.

1 Ответ

0 голосов
/ 27 ноября 2016

Метод copyTo() SmbFile позволяет копировать файлы из сети в сеть. Для копирования файлов между вашим локальным устройством и сетью вам необходимо использовать потоки. E.g.:

try {
    SmbFile source = 
            new SmbFile("smb://username:password@a.b.c.d/sandbox/sambatosdcard.txt");

    File destination = 
            new File(Environment.DIRECTORY_DOWNLOADS, "SambaCopy.txt");

    InputStream in = source.getInputStream();
    OutputStream out = new FileOutputStream(destination);

    // Copy the bits from Instream to Outstream
    byte[] buf = new byte[1024];
    int len;
    while ((len = in.read(buf)) > 0) {
        out.write(buf, 0, len);
    }
    // Maybe in.close();
    out.close();

} catch (MalformedURLException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
...