我是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文件夹?感谢。
答案 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();
}