【日常开发之Windows共享文件】Java实现Windows共享文件上传下载

文章目录

  • Windows 配置
  • 代码部分
    • Maven
    • 代码

Windows 配置

首先开启服务,打开控制面板点击程序
在这里插入图片描述
点击启用或关闭Windows功能
在这里插入图片描述
SMB1.0选中红框内的
在这里插入图片描述
我这边是专门创建了一个用户
在这里插入图片描述
创建一个文件夹然后点击属性界面,点击共享
在这里插入图片描述
下拉框选择你选择的用户点击添加,然后共享确定。
在这里插入图片描述

代码部分

Maven

maven版本存在于SMB协议的兼容问题

  <dependency><groupId>org.samba.jcifs</groupId><artifactId>jcifs</artifactId><version>1.3.3</version></dependency>

代码

public static void getRemoteFile() {// 创建远程文件对象// smb://ip地址/共享的路径/...// smb://用户名:密码@ip地址/共享的路径/...String remoteUrl = "smb://Administrator:password@ip/Test/";smbTransferFile(remoteUrl, "E:\\nacos-server-2.2.1.zip");SmbFile[] smbFiles = smbGetFiles(remoteUrl);if (Objects.nonNull(smbFiles)) {for (SmbFile smbFile : smbFiles) {System.out.println("smbFile路径:" + smbFile.getUncPath());}}}/*** @return* @Description 从共享目录读取文件* @Param shareDirectory 共享目录*/private static SmbFile[] smbGetFiles(String remoteUrl) {try {SmbFile remoteFile = new SmbFile(remoteUrl);remoteFile.connect();//尝试连接if (remoteFile.exists()) {// 获取共享文件夹中文件列表return remoteFile.listFiles();}} catch (IOException e) {throw new RuntimeException(e);}return null;}/*** @Description 向共享目录上传文件* @Param shareDirectory 共享目录* @Param localFilePath 本地目录中的文件路径*/public static void smbTransferFile(String shareDirectory, String fileName, byte[] localFile) {InputStream in = null;OutputStream out = null;try {SmbFile remoteFile= new SmbFile(shareDirectory +fileName);SmbFile mkFlag = new SmbFile(shareDirectory);if(!mkFlag.exists()){mkFlag.mkdirs();}out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile));out.write(localFile);out.flush();} catch (Exception e) {e.printStackTrace();} finally {try {if (Objects.nonNull(out)) {out.close();}if (Objects.nonNull(in)) {in.close();}} catch (IOException e) {e.printStackTrace();}}}/*** @Description 向共享目录上传文件* @Param shareDirectory 共享目录* @Param localFilePath 本地目录中的文件路径*/public static void smbTransferFile(String shareDirectory, String localFilePath) {InputStream in = null;OutputStream out = null;try {File localFile = new File(localFilePath);String fileName = localFile.getName();SmbFile remoteFile = new SmbFile(shareDirectory + fileName);in = new BufferedInputStream(Files.newInputStream(localFile.toPath()));out = new BufferedOutputStream(new SmbFileOutputStream(remoteFile));byte[] buffer = new byte[1024];while (in.read(buffer) != -1) {out.write(buffer);buffer = new byte[1024];}out.flush();} catch (Exception e) {e.printStackTrace();} finally {try {if (Objects.nonNull(out)) {out.close();}if (Objects.nonNull(in)) {in.close();}} catch (IOException e) {e.printStackTrace();}}}~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/33335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python爬虫必须要高匿IP吗 ?

各个平台搜索关键词就可以找到不同品牌的代理IP了。 找倒是不难&#xff0c;难的是能从中挑选出靠谱且合适的代理品牌。 在选择代理IP这块&#xff0c;不建议使用免费和超低价的代理&#xff0c;因为这一类的代理往往非常不稳定&#xff0c;很多都被网站拉黑过&#xff0c;特…

PS添加物体阴影

一、选择背景&#xff0c;确保物体和北京分割出图层 二、右键单击物体图层&#xff0c;点击混合选项&#xff0c;点击投影 三、调整参数&#xff0c;可以看效果决定(距离是高度&#xff0c;扩展是浓度&#xff0c;大小是模糊程度)&#xff0c;保存即可

实用软件下载:CrossOver 2024最新安装包及详细安装教程

​根据软件大数据显示上传或者手动输入软件都非常简单&#xff0c;一般来说CrossOver会自动连接到一个Win文件共享服务器&#xff08;Samba或CIFS&#xff09;上&#xff0c;使用者能够直接在这个服务器中选择并上传软件执行文件。实际上我们可以这样讲调整CrossOver设置&#…

汽车数据应用构想(五)

如果说路面信息&#xff08;POI&#xff09;可以通过采集车、人工等方式来获取&#xff0c;用户习惯可以通过手机生态应用来获取&#xff0c;那么车的信息应该算是车辆独有的垂直领域价值了&#xff0c;它是实实在在只有车厂才拥有的数据财富&#xff0c;任何互联网大厂都抢不走…

如何使用mapXplore将SQLMap数据转储到关系型数据库中

关于mapXplore mapXplore是一款功能强大的SQLMap数据转储与管理工具&#xff0c;该工具基于模块化的理念开发&#xff0c;可以帮助广大研究人员将SQLMap数据提取出来&#xff0c;并转储到类似PostgreSQL或SQLite等关系型数据库中。 功能介绍 当前版本的mapXplore支持下列功能…

图像识别技术的来龙区别,图像识别的底层原理及应用场景大总结-人工智能基础知识必读

图像识别技术是人工智能领域中的一个重要分支&#xff0c;它涉及到从图像中自动提取信息和模式的过程。随着深度学习的发展&#xff0c;图像识别技术已经取得了显著的进展&#xff0c;并在多个领域中找到了应用。 图像识别的底层原理 图像识别的基本过程包括图像获取、预处理…

transformers 生成式模型函数generate的参数说明

# generate函数说明 """ 类用于保存生成任务的配置。调用generate支持以下对于text-decoder、text-to-text、speech-to-text和vision-to-text模型的生成方法&#xff1a; 如果num_beams1且do_sampleFalse&#xff0c;则使用贪婪搜索&#xff0c;调用~generati…

一条Redis命令是如何执行的?

一条Redis命令是如何执行的&#xff1f; 源码结构核心数据结构redisServerredisClientredisDbredisObjectaeEventLoop 核心流程redis启动流程main() 主循环aeEventProcess执行过程命令执行的流程过程1&#xff08;redis启动&#xff09;过程2&#xff08;客户端与服务端建立链接…

LLM function call

简介 在大模型领域&#xff0c;尤其是在自然语言处理&#xff08;NLP&#xff09;和人工智能&#xff08;AI&#xff09;应用中&#xff0c;function call 是一种非常重要的技术手段。它主要用于让模型在生成或处理文本的过程中调用外部功能或执行特定任务&#xff0c;有以下应…

【Android】Android Studio 使用Kotlin写代码时代码提示残缺问题解决

问题描述 Android Studio升级之后&#xff0c;从Android Studio 4.2升级到Android Studio Arctic Fox版本&#xff0c;因为项目比较老&#xff0c;使用的Gradle 版本是3.1.3&#xff0c;这个版本的Android Studio最低支持Gradle 3.1版本&#xff0c;应该算是比较合适的版本。 …

不翻墙安装yolov8环境下的RT-DETR并实现PCB表面缺陷检测

目录 一、新建conda环境二、安装yolov8环境1.克隆安装包2.安装依赖包3.测试模型 任务2&#xff1a;基于RT-DETR实现PKU-PCB表面缺陷检测数据准备 数据增强测试 总结 一、新建conda环境 创建并激活conda环境&#xff1a; 在conda创建一个名为yolov8的新环境&#xff0c;并在其中…

C++网络编程实践:使用C++11基于epoll技术实现一个超大并发TCP服务器

理解epoll epoll 是一种 I/O 复用技术&#xff0c;它允许一个线程有效地管理多个文件描述符&#xff08;在本例中为套接字&#xff09;&#xff0c;而无需为每个连接创建单独的线程。这是通过事件驱动的方式来实现的&#xff0c;epoll 能够通知你哪些套接字已经准备好进行读写…

国际网络专线的开通流程

1. 选择服务商&#xff1a;首先&#xff0c;您需要选择一个可靠的服务商来提供国际网络专线服务。确保服务商具有良好的声誉和专业知识&#xff0c;以便为您提供高质量的网络连接和支持。 2. 评估需求&#xff1a;在与服务商沟通之前&#xff0c;您需要明确自己的网络需求。这…

dp经典问题:LCS问题

dp&#xff1a;LCS问题 最长公共子序列&#xff08;Longest Common Subsequence, LCS&#xff09;问题 是寻找两个字符串中最长的子序列&#xff0c;使得这个子序列在两个字符串中出现的相对顺序保持一致&#xff0c;但不要求连续。 力扣原题链接 1.定义 给定两个字符串 S1…

Python快速搭建网站

使用 Python 快速搭建网站通常可以选择以下几种流行的框架&#xff1a; Flask&#xff1a;轻量级框架&#xff0c;适合快速原型开发。Django&#xff1a;功能强大的框架&#xff0c;适合构建复杂的大型应用。 下面将分别介绍如何使用 Flask 和 Django 快速搭建一个简单的网站…

猫狗识别—视频识别

猫狗识别—视频识别 1. 导入所需的库&#xff1a;2. 创建Tkinter主窗口并设置标题&#xff1a;3. 设置窗口的宽度和高度&#xff1a;4. 创建一个Canvas&#xff0c;它将用于显示视频帧&#xff1a;5. 初始化一个视频流变量cap&#xff0c;用于存储OpenCV的视频捕获对象&#xf…

C语言 给定半径和高,计算圆,球,圆柱各参数

设圆半径r1.5&#xff0c;圆柱高h3&#xff0c;求圆周长&#xff0c;圆面积&#xff0c;圆球表面积&#xff0c;圆球体积&#xff0c;圆柱体积。用scanf输入数据&#xff0c;输出计算结果&#xff0c;输出时要求有文字说明&#xff0c;取小数点后2位数字。 #include <stdio.…

【速速收藏】适用于Linux系统的五个优秀PDF编辑器

PDF (Portable Document Format) 是便携文档格式的缩写&#xff0c;这是一种用于电子共享文档的标准格式&#xff0c;广泛应用于各种文档类型的存储和分发。然而&#xff0c;有时我们可能需要对PDF文档进行更改和编辑。本文将介绍五款在Linux平台上广受欢迎的PDF编辑器。 ​​…

陀螺仪LSM6DSV16X与AI集成(8)----MotionFX库解析空间坐标

陀螺仪LSM6DSV16X与AI集成.8--MotionFX库解析空间坐标 概述视频教学样品申请源码下载开启CRC串口设置开启X-CUBE-MEMS1设置加速度和角速度量程速率选择设置FIFO速率设置FIFO时间戳批处理速率配置过滤链初始化定义MotionFX文件卡尔曼滤波算法主程序执行流程lsm6dsv16x_motion_fx…

Linux基础 - 常用命令

目录 零. 简介 一 . 常见 Ubuntu 命令 二. apt-get 下载 三. 网络命令 四. 常用命令的总结 零. 简介 在 Ubuntu 中&#xff0c;命令是用于与操作系统进行交互和执行各种操作的指令。通过在终端中输入命令&#xff0c;可以完成文件管理、系统配置、软件安装、进程管理等各种…