如何使用像ES File Explorer这样的JCIFS打开网络存储文件呢?

时间:2014-10-10 20:15:10

标签: java c# android sockets jcifs

我正在使用Android应用,我实际上可以获取所有文件的列表,但无法使用该URL从列表中打开文件,我也尝试从InputStream打开,但这不起作用。

我想做的事情就像ES文件资源管理器那样,我知道他们使用JCIFS库,当你打开文件(例如MP3)时,他们会使用套接字创建某种隧道,它会读取文件并以HTTP格式将其传递给propper应用程序。

示例:

如果我的nas文件路径是:

smb://My_IP_Address/SharedFolder/Media/MyMusic.mp3

ES File Explorer发送如下URL:

http:// 127.0.0.1:59777/smb%2FMy_IP_Address%2FSharedFolder%2FMedia%2FMyMusic.mp3

2 个答案:

答案 0 :(得分:1)

它当然可行,但有点棘手。您的应用必须充当服务器,从samba共享读取输入流,如果我们正在谈论mp3文件,则将其流式传输到第三方应用程序(如音乐播放器)。

您可以在此处找到详细信息:Android ServerSocket programming with jCIFS streaming files

答案 1 :(得分:1)

抱歉,我想使用评论而不是回答,但我没有足够的声誉......

我在ES Explore或其他相同的应用程序中发现,他们似乎不仅使用JCIFS,还使用nanoHTTPD ......

他们将nas文件传输到samba文件,然后使用nanoHTTPD作为Streaming服务器来提供多媒体文件......

网上有很多样本,这里讨论=>  How to serve a file on sdcard using NanoHTTPD (inside Android)

希望这可以帮助你...