我正在尝试从我的应用访问共享文件,例如//172.24.9.13/c/2012xp.mdb
通过做:
new File("//172.24.9.13/c/2012xp.mdb");
它不起作用。
我找到了jCIFS库,并创建了
new SmbFile("//172.24.9.13/c/2012xp.mdb");
它有效,但问题是我需要java.io.File
。
我也看到没有办法在没有root的情况下在Android设备上安装smb。
有没有办法获得共享文件的java.io.File
实例?
答案 0 :(得分:0)
我认为你不能将其作为java.io.File
阅读,因为它不是一个。
如果您绝对需要java.io.File
,则可能需要调用smbFile.getInputStream()
并复制到本地文件,而不是使用该本地文件。
考虑到它是.mdb
文件,您可能想要从DataBase中读取数据,它可能是一个巨大的文件,您不想将其复制过来。在这种情况下,您唯一的选择是设置一个服务器,使用以JSON回复的API,您的应用程序将向其发送GET请求。
答案 1 :(得分:0)
试试这段代码。我不确定.mdb文件格式。但这适用于PDF文件。
首先使用你的smb文件创建一个SmbFileInputStream。
in = new SmbFileInputStream(sFile);
然后在设备存储(SD卡)中创建输出文件
outputfile = new File(dir, "todevice.pdf");
然后创建一个FileOutputStream(java IO)
out = new FileOutputStream(outputfile);
然后读取输入(SMB)并将其写入输出(IO)
while ((read = in.read(buffer)) > 0 )
{
try {
out.write(buffer, 0, read);
} catch (IOException e) {
}
}
现在你的SD卡上有一个文件