0

我正在尝试从我的应用程序访问共享文件,例如//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.

我还看到,如果不生根,就无法在 android 设备上挂载 smb。

有没有办法获取java.io.File我的共享文件的实例?

4

2 回答 2

0

我认为您无法阅读它,java.io.File因为它不是一个。

如果您绝对需要 a java.io.File,则可能必须调用smbFile.getInputStream()并复制到本地文件,而不是使用该本地文件。

考虑到它是一个.mdb文件,您可能想要从数据库中读取数据,并且它可能是一个巨大的文件,您不想复制它。在这种情况下,您唯一的选择是设置一个服务器,使用一个以 JSON 格式回复的 api,您的应用程序将向它发送 GET 请求。

于 2013-01-09T14:03:56.653 回答
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 卡上有一个文件

于 2013-02-13T10:03:08.643 回答