这在本质上有点模糊,但那是因为我必须开始研究这个。
我们计划使用 Windows 共享驱动器。我们将自动从 Windows 共享(从在 Linux 上运行的 java 代码)中挑选这些文件,并使用它们进行进一步处理。
- 从 Linux 的 java 代码中使用 windows 共享是否有任何已知问题?我们如何做到这一点?是挂载文件系统的唯一方法吗?
- 我们可以运行各种文件系统命令来列出文件(或移动/锁定/删除文件等)吗?
提前致谢。
这在本质上有点模糊,但那是因为我必须开始研究这个。
我们计划使用 Windows 共享驱动器。我们将自动从 Windows 共享(从在 Linux 上运行的 java 代码)中挑选这些文件,并使用它们进行进一步处理。
提前致谢。
看看 Aapche commons-vfs。它支持 SMB(Windows 共享)。http://commons.apache.org/vfs/
我在我的项目中使用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);
}