在Java程序中访问Windows共享文件系统
来源:互联网 发布:nginx 多网站 编辑:程序博客网 时间:2024/05/13 18:07
SMB: Server Message Block, 用于共享例如文件、打印机、串口或者是命名管道等用于通讯的抽象对象;
CIFS: Common Internet File System, SMB的增强版,Windows 2000/XP实现了该协议;
JCIFS: 一个实现了CIFS的纯Java项目,无须任何的本地库。
JCIFS的网址: http://jcifs.samba.org/
下面我们看一个非常简单的例子,在运行这个例子之前必须准备两台机器A、B,其中我们A是我们程序运行所在的机器,而B则是被访问的机器,仅用B上的Guest用户,而且A当前的用户不能存在于B机器中,也就是说当我们通过资源管理器访问 //B 的时候,会要求输入用户名以及口令,如下图所示:
这个时候A机器上的程序就不能通过例如 //B/folder/1.txt 这样的路径来访问B机器上共享文件夹folder中的1.txt文件,也就是说Java中自带的File,FileInputStream类已经不起作用了,不信? 不信你丫试试
但是借助于JCIFS你就可以很容易的访问到文件1.txt的内容,我们先来看这个简单的例子:
import jcifs.smb.*;
public class Demo{
public static void main(String[] args) throws Exception{
//将user和password换成是B机器上的用户名以及口令
SmbFileInputStream in = new SmbFileInputStream("smb://user:password@B/folder/1.txt" );
byte[] b = new byte[8192];
int n;
while(( n = in.read( b )) > 0 ) {
System.out.write( b, 0, n );
}
}
}
编译并运行这面的例子便可以打印文件 1.txt 的内容。
把上面例子中的密码填写成一个错误的密码再运行程序,便会得到 jcifs.smb.SmbAuthException 异常。
写文件也是一个道理,关于文件的操作JCIFS提供了这么几个类:SmbFile,SmbFileInputStream,SmbFileOutputStream,具体的用户跟Java中对应的类差不多。
JCIFS中文件的URL也就是smb_url,格式为:smb://{user}:{password}@{host}/{path} ,只要填好这个URL,JCIFS就会帮你搞定身份验证的事,粉简单的。
- 在Java程序中访问Windows共享文件系统
- 用JAVA访问共享文件系统
- 用JAVA访问共享文件系统
- 用JAVA访问共享文件系统
- 用JAVA访问共享文件系统
- 用JAVA访问共享文件系统
- 用JAVA访问共享文件系统
- 用JAVA访问共享文件系统
- 在Windows下访问Ubuntu共享文件夹
- 在Linux系统中访问 windows系统中共享的文件夹
- windows系统中访问共享不用密码
- 虚拟机中linux访问windows共享文件夹
- 程序中访问远程共享文件夹
- Linux与Windows在局域网中互相访问共享文件夹的经验
- 在cygwin中访问网络共享
- 在Linux客户机中访问共享文件夹
- 在java中使用Jawin组件访问Windows应用程序
- 如何在JAVA程序中调用windows其他程序
- 关于DirectX9在VS2005下编译报错的处理资料整理
- Java正则表达式入门
- 一个老工程师给年轻工程师的十大忠告
- java学习网站大全
- ASP.NET中Cookie编程
- 在Java程序中访问Windows共享文件系统
- ARP攻击与防范
- ASP:Provider 错误 '80004005' 未指定的错误 的最终解决方法
- VS2005中:无法在web服务器上启动调试。调试失败,因为没有启用集成windows身份验证
- J2EE架构的6个最佳实践
- Bresenham 直线算法
- 初学者对Hibernate的学习方法
- SQL死锁解决办法
- 工作体会