java samba 例子

有了前文的基础,附上一下例子代码,希望对大家有所帮助。

 

package demo;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileFactory;
import jcifs.smb.SmbFileOutputStream;


public class TestSamba {

    public static String share_dir="smb://172.18.7.237/temp/";
   
    /**
     * 用户名密码
     */
    public static String conn_str="pub:pub";
   
    public static void testListDir() throws Exception
    {
        SmbFile sf=new SmbFile(share_dir,new jcifs.smb.NtlmPasswordAuthentication(conn_str));
       
        SmbFile[] ls=sf.listFiles();
        for(int i=0;i<ls.length;i++)
        {
            if(ls[i].isDirectory())
               System.out.println(ls[i]);
        }       
    }   
   
    public static void makedir()  throws Exception
    {
        SmbFile sfbase=SmbFileFactory.get(share_dir,conn_str);
        SmbFile dir=SmbFileFactory.get(sfbase,"jdk2/");
        System.out.println(dir.getPath());       
        dir.mkdir();       
    }
   

    public static void writeFile(String rel_file)  throws Exception
    {
        SmbFile sfbase=SmbFileFactory.get(share_dir,conn_str);
       
        SmbFile snew=SmbFileFactory.get(sfbase,rel_file);       
        System.out.println(snew.getPath());
        System.out.println(snew.exists());

        jcifs.smb.SmbFileOutputStream sfos=new SmbFileOutputStream(snew,false);
       
        String s="你好abc"+" time="+new java.util.Date();
        sfos.write(s.getBytes());
        sfos.close();
   
    }
       
    public static void main(String[] cd) throws Exception
    {               
           writeFile("jdk/test4.txt");
    }       
}

### Java 中 SMB 协议的实现库及其使用示例 对于希望在 Java 应用程序中集成 SMB (Server Message Block) 功能的需求,存在多个第三方库可以满足这一需求。这些库允许开发者通过 Java 进行文件共享操作、访问远程服务器上的资源等。 #### JCIFS-ng Library JCIFS 是一个广泛使用的开源项目,用于提供 SMB/CIFS 文件系统支持给 Java 程序员。其后续版本称为 `jcifs-ng` 提供了更好的性能和更多的特性改进[^3]。 安装方式通常依赖于 Maven 或 Gradle 构建工具: Maven 依赖配置如下所示: ```xml <dependency> <groupId>eu.hansolo</groupId> <artifactId:jcifs-ng</artifactId> <version>2.1.0</version> </dependency> ``` 简单连接并读取网络路径下的文件例子: ```java import jcifs.smb.NtlmPasswordAuthentication; import jcifs.smb.SmbFile; public class SmbExample { public static void main(String[] args) throws Exception { String user = "username"; String pass = "password"; NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("", user, pass); String url = "smb://server/share/file.txt"; SmbFile smbFile = new SmbFile(url, auth); System.out.println(smbFile.exists() ? "File exists." : "File does not exist."); } } ``` #### Samba-Java Library 另一个选择是来自 Apache 的 Samba 实现——Samba-Java。这个库提供了更全面的功能集来处理复杂的 SMB 请求和服务端开发场景[^4]。 由于官方文档较少,在实际应用前建议先查阅社区贡献者维护的相关资料以及源码中的测试案例作为指导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值