Java上传文件到Windows共享目录问题 STATUS_ACCESS_DENIED(0xc000022)

2023-05-16

Java上传文件到Windows共享目录问题

smpj上传到Windows共享目录一直失败,报STATUS_ACCESS_DENIED(0xc000022)。在GitHub上看错误码是服务器上报的,查看errortable是给到权限与服务器要求的权限不一致。openFile的第二个参数设置为添加文件和写文件即可(之前是全集操作GENERIC_ALL)。

File f = share.openFile(fileName, new HashSet(Arrays.asList(new AccessMask[]
{ AccessMask.FILE_ADD_FILE, AccessMask.FILE_WRITE_DATA })), fileAttributes, SMB2ShareAccess.ALL,
SMB2CreateDisposition.FILE_CREATE, createOptions);

文章:
https://www.soinside.com/question/e8TfG5dv4aV6xwWirYkR55

String fileName =“EricTestFile.txt”;
String fileContents = “Mary had a little lamb.”;

SMBClient client = new SMBClient();
try (Connection connection = client.connect(serverName)) {
AuthenticationContext ac = new AuthenticationContext(username, password.toCharArray(), domain);
Session session = connection.authenticate(ac);

// Connect to Share
try (DiskShare share = (DiskShare) session.connectShare(sharename)) {
    for (FileIdBothDirectoryInformation f : share.list(folderName, "*.*")) {
        System.out.println("File : " + f.getFileName());
    }

    //share.openFile(path, accessMask, attributes, shareAccesses, createDisposition, createOptions)
    Set<FileAttributes> fileAttributes = new HashSet<>();
    fileAttributes.add(FileAttributes.FILE_ATTRIBUTE_NORMAL);
    Set<SMB2CreateOptions> createOptions = new HashSet<>();
    createOptions.add(SMB2CreateOptions.FILE_RANDOM_ACCESS);
    File f = share.openFile(folderName+"\\"+fileName, new HashSet(Arrays.asList(new AccessMask[]{AccessMask.GENERIC_ALL})), fileAttributes, SMB2ShareAccess.ALL, SMB2CreateDisposition.FILE_OVERWRITE, createOptions);

    OutputStream oStream = f.getOutputStream();
    oStream.write(fileContents.getBytes());
    oStream.flush();
    oStream.close();
}

} catch (IOException e) {
e.printStackTrace();
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java上传文件到Windows共享目录问题 STATUS_ACCESS_DENIED(0xc000022) 的相关文章

  • 电池充电电路(TP4059)详解

    电池充电电路 xff08 TP4059 xff09 详解 TP4059是一款完整的单节锂离子电池充电器 xff0c 带电池正负极反接保护反接功能 xff0c 支持高达600mA的充电电流 xff0c 更稳定的电流一致性 该芯片的充电电流可以
  • 洛谷刷题记录【入门1】顺序结构

    入门1 顺序结构 题单 洛谷 https www luogu com cn training 100 problems 1 A 43 B Problem 洛谷 输入两个整数 a b xff0c 输出它们的和 xff08 a b 10 xff
  • 安装CLOVER引导器到硬盘EFI分区

    彻底脱离CLOVER引导U盘 目录 xff1a 1使用EFI TOOLS Clover 安装CLOVER引导器到EFI分区 2使用Clover v2 3k rXXXX pkg 安装CLOVER引导器到EFI分区 前言 我们的电脑里已经安装好
  • 安装配置IIS+MySQL+PHP环境的详细教程(之篇二PHP安装)

    上一篇参考安装配置IIS 43 MySQL 43 PHP环境的详细教程之篇一IIS安装 安装配置IIS 43 MySQL 43 PHP环境的详细教程 xff08 之篇二PHP安装 xff09 在Windows 云服务器中进行 PHP 配置
  • sublime text 4 license

    sublime text 4 注册license 亲测可用 BEGIN LICENSE Mifeng User Single User License EA7E span class token operator span span cla
  • 1.3 生成器 Builder

    专业描述 生成器模式是一种创建型设计模式 xff0c 使你能够分步骤创建复杂对象 该模式允许你使用相同的创建代码生成不同类型和形式的对象 生成器模式结构 生成器 xff08 Builder xff09 接口声明在所有类型生成器中通用的产品构
  • 全网最全Flutter的学习文档,不可转载

    title Flutter全网最全学习笔记 xff01 Flutter学习文档 Author xff1a Brath 欢迎来到 brath 的 CSDN 博客 xff0c 你也可访问 brath top 到我的个人博客来进行观看 演示dem
  • idea启动SpringBoot程序后,出现Process finished with exit code 0并不能成功运行

    前言 最近在学习SpringBoot xff0c 把视屏看了一遍 xff0c 就心血来潮想先测试下 xff1b 然后在IDEA中新建SpringBoot项目 xff08 maven xff09 xff0c 然后就写个标准的hello Spr
  • mysql 定时删除过期数据记录

    首先连接mysql数据库 xff1a 1 查看MySQL事件功能开启 show variables like span class token string 39 sc 39 span span class token punctuatio
  • springboot多数据源使用canal同步master数据库

    canal数据库同步 canal源码 xff08 需要根据自己配置修改参数 xff09 准备 0 xff1a binlog文件 0 1 xff1a binlog文件包含两种类型 xff1a 索引文件 xff08 文件名后缀为 index x
  • nginx映射域名以及加证书https(SSL证书)

    1 映射一个域名到服务器80端口 2 在服务器nginx配置这个域名并重启 nginx conf默认配置 user root span class token punctuation span worker processes auto s
  • 严重 [RMI TCP Connection(3)-127.0.0.1]

    遇到这个问题网上搜了半天发现还是没解决 xff0c 最后发现是maven库的问题 1 这个问题一般是maven库的原因 xff0c 自己下载配置Repository仓库 xff0c 也可以使用IDEA自动下载一个库 下面我是使用IDEA下载
  • MySQL数据库删除数据(有外键约束)

    在MySQL中删除一张表或一条数据的时候 xff0c 出现有外键约束的问题 xff0c 于是就去查了下方法 xff1a span class hljs operator span class hljs keyword SELECT span
  • IDEA 第一次配置Tomcat找不到Tomcat server

    新装的一个电脑 xff0c 配置tomcat时候找不到tomcat server xff0c 这次做个记录 关闭项目 gt setting gt plugins gt 搜索tomcat安装 再次打开就可以看到了 如果还没有就应该是下面的情况
  • java.lang.NumberFormatException: null原因

    今天跑从公司SVN download下来的项目 xff0c 老实报java lang NumberFormatException null这个错 xff0c 页面还提示我系统异常 xff0c 从网上百度看的很多解决方案说是下面这些情况 xf
  • linux内核睡眠状态解析(转载)

    1 系统睡眠状态 睡眠状态是整个系统的全局低功耗状态 xff0c 在这种状态下 xff0c 用户空间的代码不能被执行并且整个系统的活动明显被降低 1 1 被支持的睡眠状态 取决于所运行平台的能力和配置选项 xff0c Linux内核能支持四
  • 记一次Debian11安装

    出现问题 安装成功之后无法启动 从官网上下载镜像之后 xff08 有网络镜像和完整镜像 xff09 xff0c 就是一步步下一步 xff0c 当时提醒我缺少固件 xff0c 我也没有注意 xff0c 以为会联网自动安装 xff0c 当时选择
  • 再谈 UITableView 的 estimatedRowHeight(转)好文章

    转载自 xff1a https kangzubin com uitableview estimatedrowheight 今天发现之前写的一个基于 UITableView 的列表页面存在如下问题 xff1a 当列表在滑动过程中 xff0c
  • Windows访问Ubuntu的两种方法

    两种访问方法都是基于SSH实现的 xff0c 相比于samba只能在同一局域网访问的限制 xff0c 提高工作访问的效率 使用前提 Ubuntu 系统安装了ssh客户端 1 xff1a 将远程Ubuntu文件系统映射到本地磁盘 xff0c
  • 转账设计测试用例-----必背

    功能测试 1 付款账户无余额 xff0c 发起转账 2 付款账户输入框输入特殊字符发起转账 3 付款账户输入框输入空值 xff0c 发起转账 4 付款账户输入0元 xff0c 发起转账 5 付款账户输入大于0且小于余额 xff0c 发起账号

随机推荐