将文件从Samba驱动器复制到Android sdcard目录

时间:2011-11-17 15:19:54

标签: android file copy sd-card samba

我是Android和Samba的新手。我正在尝试使用JCIFS副本。方法将文件从Samba目录复制到Android 3.1设备上sdcard下的“下载”目录。以下是我的代码:

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

我在'to'文件上遇到MalformedURLException。有没有办法使用copyTo方法解决此问题,或者是否有另一种方法使用JCIFS或任何其他方式将文件从samba文件夹复制到sdcard文件夹?感谢。

1 个答案:

答案 0 :(得分:0)

SmbFile的copyTo()方法允许您将文件从网络复制到网络。要在本地设备和网络之间复制文件,您需要使用流。 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();
}