0

这在本质上有点模糊,但那是因为我必须开始研究这个。

我们计划使用 Windows 共享驱动器。我们将自动从 Windows 共享(从在 Linux 上运行的 java 代码)中挑选这些文件,并使用它们进行进一步处理。

  1. 从 Linux 的 java 代码中使用 windows 共享是否有任何已知问题?我们如何做到这一点?是挂载文件系统的唯一方法吗?
  2. 我们可以运行各种文件系统命令来列出文件(或移动/锁定/删除文件等)吗?

提前致谢。

4

2 回答 2

1

看看 Aapche commons-vfs。它支持 SMB(Windows 共享)。http://commons.apache.org/vfs/

具体来说 - http://commons.apache.org/vfs/filesystems.html#CIFS

于 2012-09-05T11:11:00.843 回答
0

我在我的项目中使用jcifs来处理 samba。有一个名为jcifs.smb.SmbFile类似的类,java.io.File可以像处理本地文件一样处理 samba 文件。listFiles(), delete(), exists(), getInputStream(),等方法 createNewFile()应该满足您的需求。

这是一个下载文件演示,希望对您有所帮助。

    SmbFileInputStream is = null;
    FileOutputStream os = null;
    //
    String souFileUrl = "smb://" + user + ":" + password + "@" + server + "/" + souFileName;

    SmbFile souSmbFile = new SmbFile(souFileUrl);
    is = new SmbFileInputStream(souSmbFile);
    File tempOutFile = new java.io.File(newfilename);
    os = new FileOutputStream(tempOutFile);
    byte[] bytes = new byte[1024];
    int c;
    while ((c = is.read(bytes)) != -1) {
        os.write(bytes, 0, c);
    }
于 2012-09-05T15:12:28.217 回答