从Samba文件复制开车到Android SD卡目录(Copying file from a Sam

2019-10-16 13:45发布

我是新来的Android和Samba。 我试图使用JCIFS副本。 要方法从Samba目录下SD卡的文件复制到“下载”目录中的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);

我得到的“到”文件MalformedURLException类。 有没有办法来解决使用这一问题copyTo方法,还是有从桑巴文件夹使用JCIFS或任何其他方式的SD卡文件夹中复制文件的替代方法? 谢谢。

Answer 1:

该SmbFile的copyTo()方法可以复制文件从网络到网络。 要在您的本地设备,你需要使用流网络之间复制文件。 例如:

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


文章来源: Copying file from a Samba drive to an Android sdcard directory