当前位置: 首页 > news >正文

C#实现访问远程硬盘(附源码)

在现实场景中,我们经常用到远程桌面功能,而在某些场景下,我们需要使用类似的远程硬盘功能,这样能非常方便地操作对方电脑磁盘的目录、以及传送文件。那么,这样的远程硬盘功能要怎么实现了?

这次我们将给出一个完整的Demo来演示远程硬盘要怎么实现,同时,这个Demo也给出了个人网盘是如何实现的。个人网盘可以看做是远程硬盘应用的一个特例,即,个人网盘就是访问服务器上的一个特定文件夹。废话不多说,先上图看看这个远程硬盘Demo的基本功能。

一. 远程硬盘功能展示

打开到对方的远程磁盘后,我们就可以看到对方电脑的硬盘了,点击任何一个,就可以访问该盘下面的文件。

访问远程硬盘

双击文件,就可以下载文件到本地;右键菜单则可以上传本地文件到远程磁盘。

传送文件

二. 远程硬盘代码实现

在实现远程磁盘时,我们分为两个层面介绍,一个是底层业务通信层面,另一个是上层的UI展现层面。

1. 底层业务通信实现

比如,当我们使用远程磁盘功能时,最常见的就是去获取对方电脑某个目录下的所有文件及文件夹,那么,这个功能是怎么实现的了?

基于ESFramework,实现这点其实很简单,我们举例说明。以A用户作为磁盘的分享者,B用户作为远程磁盘的访问者,A和B都启动了该Demo的客户端并登录。此时,B要访问A用户电脑上某个目录下的文件列表,那么,B就可以给A发一个请求消息,并得到回复,如下所示(NDiskOutter 类的 GetSharedDirectory 方法):     

/// <summary>
/// 获取目标用户电脑上指定目录下的文件列表信息。
/// </summary>
/// <param name="ownerID">目标用户的账号(磁盘分享者)</param>
/// <param name="clientType">目标用户的设备类型</param>
/// <param name="netDiskID">网盘的标志。(对于远程磁盘而言,即OwnerID为某个用户的ID时,该参数可传null)。如果是群组共享的文件夹,则可以将其设置为对应的群组的ID。</param>
/// <param name="dirPath">指定目录的路径</param>
/// <returns>目录下的文件列表信息</returns>
public SharedDirectory GetSharedDirectory(string ownerID,ClientType clientType,string netDiskID ,string dirPath)
{ReqDirectoryContract contract = new ReqDirectoryContract(netDiskID, dirPath);byte[] res;if (!ownerID.Equals(NetServer.SystemUserID)) //远程磁盘{res = this.p2pQueryOutter.Query(ownerID, clientType, this.fileDirectoryInfoTypes.ReqDirectory, CompactPropertySerializer.Default.Serialize<ReqDirectoryContract>(contract), "");}else //网盘{res = this.customizeOutter.Query(this.fileDirectoryInfoTypes.ReqDirectory, CompactPropertySerializer.Default.Serialize<ReqDirectoryContract>(contract));}ResDirectoryContract resContract = CompactPropertySerializer.Default.Deserialize<ResDirectoryContract>(res, 0);return resContract.SharedDirectory;
}

无论是网盘,还是远程磁盘,都可以通过上述的代码来进行调用,以获取对方电脑指定目录下的文件列表。

(1)特别注意,上述代码中红色字体突出显示的Query方法,该方法的含义是:向对方(或服务器)发送 ReqDirectory 请求,并返回对方的应答结果。

(2)返回的 SharedDirectory 对象,里面包含了目录下的文件列表和子文件夹列表,可以通过 FileList 和 SubDirectorys 属性获取。

那么,A作为分享方,是如何处理来自B的 ReqDirectory 请求的了?

我们来看看 NDiskPassiveHandler 类的 HandleQuery 方法中对 ReqDirectory 请求的处理:

if (informationType == this.fileDirectoryInfoTypes.ReqDirectory){ReqDirectoryContract contract = CompactPropertySerializer.Default.Deserialize<ReqDirectoryContract>(info, 0);string fullPath = this.ConstructFullPath(contract.DirectoryPath);SharedDirectory dir = SharedDirectory.GetSharedDirectory(fullPath);return CompactPropertySerializer.Default.Serialize<ResDirectoryContract>(new ResDirectoryContract(dir));}

(1)首先,将二进制请求消息反序列化为 ReqDirectoryContract 对象,从中拿到对方想要请求的目录路径。

(2)通过 SharedDirectory 的静态方法 GetSharedDirectory 获取目标目录下的文件列表和子文件夹列表,并包装成 SharedDirectory 对象。

(3)将 SharedDirectory 对象序列化成二进制后,返回给请求方。

      上面就以请求指定目录下的文件列表及文件夹列表为例,说明了底层业务通信的过程。其它的业务通信就不再赘述了,大家可自行查看源码。

2. UI 实现 

      在客户端,最主要的UI控件就是 NDiskBrowser 的实现,它的功能主要有:

(1)浏览远程磁盘下的目录及文件。

(2)可从远程磁盘下载文件到本地电脑。

(3)可将本地文件上传到远程磁盘。

      我们仍然以浏览远程磁盘指定目录下的所有文件及文件夹为例,来看看 NDiskBrowser 是如何在UI展现的。

SharedDirectory sharedDirectory = this.nDiskOutter.GetSharedDirectory(this.ownerID, this.clientType, this.netDiskID , path);foreach (DirectoryDetail dirDetail in sharedDirectory.SubDirectorys)
{ListViewItem item = new ListViewItem(new string[] { dirDetail.Name, dirDetail.CreateTime.ToString(), "" }, 0);item.Tag = new FileOrDirectoryTag(dirDetail.Name, 0, dirDetail.CreateTime, false);this.listView_fileDirectory.Items.Add(item);
}foreach (FileDetail file in sharedDirectory.FileList)
{ListViewItem item = new ListViewItem(new string[] { file.Name, file.CreateTime.ToString(), PublicHelper.GetSizeString((uint)file.Size) }, this.GetIconIndex(file.Name));item.Tag = new FileOrDirectoryTag(file.Name, file.Size, file.CreateTime, true);item.ToolTipText = string.Format("大    小:{0}\n创建日期:{1}", PublicHelper.GetSizeString((uint)file.Size), file.CreateTime);this.listView_fileDirectory.Items.Add(item);
}

   在通过 NDiskOutter 的 GetSharedDirectory 方法拿到 SharedDirectory 对象后,就将其 SubDirectorys 所包含的每个子文件夹作为 ListViewItem  添加到 ListView 中显示出来;同时,也将其 FileList 所包含的每个文件作为 ListViewItem  添加到 ListView 中显示出来。这样就出现了我们之前截图的效果。

      NDiskBrowser 的实现代码虽然比较多,但是都很简单,大家下载源码后可自行查看。

三. 下载Demo源码及运行

1. Demo 源码下载:Oraycn.RemoteDisk.rar

2. 运行Demo

(1)运行服务端。

双击服务端运行目录下的 Oraycn.RemoteDisk.Server.exe ,即可启动服务端,如下截图所示:

远程硬盘服务端

(2)运行客户端。

修改客户端配置文件 Oraycn.RemoteDisk.exe.config 中的 ServerIP 为运行服务端电脑的 IP地址,然后双击 Oraycn.RemoteDisk.exe 启动客户端: 

远程硬盘客户端登录

账号密码随便填,登录成功后,进入主界面:

远程硬盘客户端主界面

此时,在主界面的输入框中填上对方的账号,点击“访问他的磁盘”按钮,如果对方在线,就会弹出此文第一张截图的窗体了。

如此,我们就可以完全的操控远程硬盘了。

关于远程硬盘,如果您有什么好点子,欢迎留言和我讨论,谢谢。

相关文章:

C#实现访问远程硬盘(附源码)

在现实场景中&#xff0c;我们经常用到远程桌面功能&#xff0c;而在某些场景下&#xff0c;我们需要使用类似的远程硬盘功能&#xff0c;这样能非常方便地操作对方电脑磁盘的目录、以及传送文件。那么&#xff0c;这样的远程硬盘功能要怎么实现了&#xff1f; 这次我们将给出…...

AI日报 · 2025年05月16日|Google DeepMind推出AlphaEvolve,能自主设计高级算法的编码代理

全球AI新闻日报 日期&#xff1a;2025年5月16日 目录 OpenAI与CoreWeave签署40亿美元新协议&#xff0c;GPT-4.1模型全面推出Google DeepMind推出AlphaEvolve&#xff0c;能自主设计高级算法的编码代理Anthropic律师因Claude模型虚构法律引用被迫道歉Meta推迟旗舰AI模型&quo…...

TCP/IP 知识体系

TCP/IP 知识体系 一、TCP/IP 定义 全称&#xff1a;Transmission Control Protocol/Internet Protocol&#xff08;传输控制协议/网际协议&#xff09;核心概念&#xff1a; 跨网络实现信息传输的协议簇&#xff08;包含 TCP、IP、FTP、SMTP、UDP 等协议&#xff09;因 TCP 和…...

记一次缓存填坑省市区级联获取的操作

先说缓存是什么&#xff1f; 缓存主要是解决高并发&#xff0c;大数据场景下&#xff0c;热点数据快速访问。缓存的原则首先保证数据的准确和最终数据一致&#xff0c;其次是距离用户越近越好&#xff0c;同步越及时越好。 再说我们遇到的场景&#xff1a; 接手项目后&#…...

【时空图神经网络 交通】相关模型2:STSGCN | 时空同步图卷积网络 | 空间相关性,时间相关性,空间-时间异质性

注:仅学习使用~ 前情提要: 【时空图神经网络 & 交通】相关模型1:STGCN | 完全卷积结构,高效的图卷积近似,瓶颈策略 | 时间门控卷积层:GLU(Gated Linear Unit),一种特殊的非线性门控单元目录 STSGCN-2020年1.1 背景1.2 模型1.2.1 问题背景:现有模型存在的问题1.2…...

uniapp实现在线pdf预览以及下载

uniapp实现在线pdf预览以及下载 在线预览 遇到的问题 后端返回一个url地址&#xff0c;我需要将在在页面中渲染出来。因为在浏览器栏上我输入url地址就可以直接预览pdf文件&#xff0c;因此直接的想法是通过web-view组件直接渲染。有什么问题呢&#xff1f;在h5端能够正常渲…...

【Rust闭包】rust语言闭包函数原理用法汇总与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

裸金属服务器和云服务器之间的差别

裸金属服务器能够直接在硬件上运行&#xff0c;不需要额外的虚化层&#xff0c;让每个应用程序或者是服务都能够在实际的硬件上运行&#xff0c;不需要和其他虚拟服务器来共享资源&#xff1b;而云服务器作为一种虚拟服务器&#xff0c;是通过虚拟化技术为企业提供一个独立的计…...

CentOS系统中升级Python 3.12.2版本

在CentOS系统中升级Python版本是一项常见的操作&#xff0c;尤其是在需要使用较新功能或满足某些软件依赖的情况下。以下是详细的步骤和注意事项&#xff0c;帮助您顺利完成Python版本的升级。 1. 升级Python版本前的准备 在开始升级之前&#xff0c;请确保以下几点&#xff1…...

win10-django项目与mysql的基本增删改查

以下都是在win10系统下&#xff0c;django项目的orm框架对本地mysql的表的操作 models.py----->即表对应的类所在的位置 在表里新增数据 1.引入表对应的在models.py中的类class 2.在views.py中使用函数&#xff1a;类名.objects.create(字段名值,字段名"值"。。。…...

图像处理:预览并绘制图像细节

前言 因为最近在搞毕业论文的事情&#xff0c;要做出一下图像细节对比图&#xff0c;所以我这里写了两个脚本&#xff0c;一个用于框选并同时预览图像放大细节&#xff0c;可显示并返回框选图像的坐标&#xff0c;另外一个是输入框选图像的坐标并将放大的细节放置在图像中&…...

针对面试-微服务篇

1.Spring Cloud 5大组件有哪些? 随着SpringCloudAlibba在国内兴起&#xff0c;我们项目中使用了一些阿里巴巴的组件 注册中心/配置中心 Nacos 负载均衡 Ribbon 服务调用 Feign 服务保护 sentinel 服务网关 Gateway 2. 我看你之前也用过nacos、你能说下nacos与eureka的区别?…...

SRS流媒体服务器(5)源码分析之RTMP握手

1.概述 学习 RTMP 握手逻辑前&#xff0c;需明确两个核心问题&#xff1a; rtmp协议连接流程阶段rtmp简单握手和复杂握手区别 具体可以学习往期博客&#xff1a; RTMP协议分析_rtmp与264的关系-CSDN博客 2.rtmp握手源码分析 2.1 握手入口 根据SRS流媒体服务器(4)可知&am…...

线程池(ThreadPoolExecutor)实现原理和源码细节是Java高并发面试和实战开发的重点

一、线程池核心流程图 ----------------- | 提交任务 | submit/execute -----------------|v ----------------- | 判断核心线程数 | < corePoolSize&#xff1f; -----------------|Yes |Nov v [创建新线程] -----------------| 队列是否满&a…...

C# DataGridView 选中所有复选框

问题描述 在程序中尝试选中所有复选框&#xff0c;但出现错误。如果单击顶部的完整选中/释放复选框&#xff0c;同时选中包含复选框的列&#xff0c;则选定区域不会改变。该如何解决&#xff1f; 上面的图片是点击完整版本之后的。 下面是本文的测试代码&#xff0c;函数 dat…...

linux 服务器安装jira-8.22.0和confluence-8.5.21

前提&#xff1a; 下载资源包 z_atlassian-agent-v1.3.1.zip z_atlassian-confluence-8.5.21-x64.zip z_atlassian-jira-software-8.22.0-x64.zip z_jdk-8u131-linux-x64.tar.gz z_postgresql-12.0.tar.gz 可通过作者本身资源库下载 一&#xff1a;服务器构建文件夹 mkdir /z …...

【计算机网络】HTTP/1.0,HTTP/1.1,HTTP/2,HTTP/3汇总讲解,清晰表格整理面试重点对比

表格汇总 对比维度HTTP/1.0HTTP/1.1HTTP/2HTTP/3传输协议TCPTCPTCP/TLS&#xff08;默认加密&#xff09;UDP&#xff08;基于 QUIC 协议&#xff09;连接方式短连接&#xff08;每次请求/响应后断开&#xff09;引入持久连接&#xff08;Persistent Connection&#xff09;&a…...

Go语言之路————并发

Go语言之路————并发 前言协程管道SelectsyncWaitGroup锁 前言 我是一名多年Java开发人员&#xff0c;因为工作需要现在要学习go语言&#xff0c;Go语言之路是一个系列&#xff0c;记录着我从0开始接触Go&#xff0c;到后面能正常完成工作上的业务开发的过程&#xff0c;如…...

python的家教课程管理系统

目录 技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xf…...

0x08.Redis 支持事务吗?如何实现?

回答重点 Redis 支持事务,但它的事务与 MySQL 等关系型数据库的事务有着本质区别。MySQL 中的事务严格遵循 ACID 特性,而 Redis 中的事务主要保证的是命令执行的原子性和隔离性,即所有命令在一个不可分割的操作中顺序执行,不会被其他客户端的命令请求所打断。 最关键的区…...

互联网应用的安全防线-身份证实名认证api-身份证三要素验证

随着联网技术的普及&#xff0c;互联网应用已深度渗透人们的生活&#xff0c;从购物下单到社交互动&#xff0c;从金融理财到在线教育&#xff0c;每一次的联网互动都隐藏着一个关乎安全与信任的“隐形卫士”-身份证实名认证接口功能。它如同数字世界的“电子身份证”&#xff…...

本地跑通vue-element-admin项目

GitHub - PanJiaChen/vue-element-admin: :tada: A magical vue admin https://panjiachen.github.io/vue-element-admin 通过加速clone到本地 git clone https://gitclone.com/github.com/PanJiaChen/vue-element-admin.git # 进入项目目录 cd vue-element-admin # 安装依赖…...

el-table表格列宽度自适应

需求&#xff1a;表格错误描述列 要求按照内容最大值设置宽度&#xff1b;如果没有值 则设置最小宽度 <el-table-columnv-else-if"item.prop errorDescription":key"item.code":width"flexColumnWidth(errorDescription, tableConfigA.tableDataA…...

Mysql存储过程(附案例)

​ 文章目录 存储过程概述1、基本语法2、变量①、系统变量②、用户自定义变量③、局部变量 3、流程控制语句①、if语句②、参数③、case语句④、while语句⑤、repeat语句⑥、loop语句⑦、cursor游标⑧、handler 4、存储函数 存储过程概述 存储过程是事先经过编译并存储在数据…...

宇树科技申请 “机器人牌照” 商标,剑指机器人领域新高度​

近日&#xff0c;据天眼查信息显示&#xff0c;杭州宇树科技有限公司有了一项重大举动&#xff0c;其申请注册了 “机器人牌照”“机牌”“Robot license”“Robot plate” 等商标&#xff0c;国际分类涉及科学仪器、运输工具、广告销售等多个领域&#xff0c;当前商标状态均为…...

计算机图形学基础--Games101笔记(一)数学基础与光栅化

数学基础 向量 点乘&#xff0c;叉乘和投影&#xff1a; 插值 三角形插值 **重心坐标&#xff1a;**我们通过任意点的重心坐标来插值。 V α V A β V B γ V C V\alpha V_A\beta V_B\gamma V_C VαVA​βVB​γVC​。注意重心坐标没有投影不变性&#xff0c;如果插值三…...

Chrome拓展(Chrome Extension)开发定时任务插件

Chrome扩展定时任务插件开发指南 核心实现原理 使用Chrome Alarms API实现定时触发通过Service Worker保持后台运行本地存储保存任务配置 开发步骤 创建manifest文件 (manifest.json) {"manifest_version": 3,"name": "定时任务助手","…...

100G QSFP28 BIDI光模块一览:100G单纤高速传输方案|易天光通信

目录 前言 一、易天光通信100G QSFP28 BIDI光模块是什么&#xff1f; 二、易天光通信100G QSFP28 BIDI光模块采用的关键技术 三、100G QSFP28 BIDI光模块的优势 四、以“易天光通信100G BIDI 40km ER1光模块”为例 五、总结&#xff1a;高效组网&#xff0c;从“减”开始 关于…...

每日Prompt:迷你 3D 建筑

提示词 3D Q版迷你风格&#xff0c;一个充满奇趣的迷你星巴克咖啡馆&#xff0c;外观就像一个巨大的外带咖啡杯&#xff0c;还有盖子和吸管。建筑共两层&#xff0c;大大的玻璃窗清晰地展示出内部温馨而精致的设计&#xff1a;木质的家具、温暖的灯光以及忙碌的咖啡师们。街道…...

从另一个视角理解TCP握手、挥手与可靠传输

本文将深入探讨 TCP 协议中三次握手、四次挥手的原理&#xff0c;以及其保证可靠传输的机制。 一、三次握手&#xff1a;为何是三次&#xff0c;而非两次&#xff1f; 建立 TCP 连接的过程犹如一场严谨的 “对话”&#xff0c;需要经过三次握手才能确保通信双方的可靠连接。 三…...

SearxNG本地搜索引擎

SearxNG 是一个强大、开源的 元搜索引擎(meta search engine),它不会存储用户信息,注重隐私保护,并支持从多个搜索引擎聚合结果,用户可以自建部署,打造一个无广告、可定制的搜索平台。 🔍 什么是 SearxNG? SearxNG 是 Searx 的一个积极维护的分支(fork),意在改进…...

基于支持向量机(SVM)的P300检测分类

基于支持向量机&#xff08;SVM&#xff09;的P300检测分类MATLAB实现&#xff0c;包含数据预处理、特征提取和分类评估流程&#xff1a; %% P300检测分类完整流程&#xff08;SVM实现&#xff09; clc; clear; close all;%% 1. 数据加载与模拟生成&#xff08;实际应用需替换…...

Oracle学习日记--Oracle中使用单个inert语句实现插入多行记录

目录 前言&#xff1a; 问题现象&#xff1a; 问题分析&#xff1a; 解决方法&#xff1a; 1、insert into ... union all句式 2、insert all into ...select 1 from dual句式 总结&#xff1a; 前言&#xff1a; 最近项目中使用到了Oracle数据库&#xff0c;由于Oracle数…...

利用边缘计算和工业计算机实现智能视频分析

在人工智能和物联网取得重大进步的时代&#xff0c;智能视频分析&#xff08;IVA&#xff09;正在通过整合先进的人工智能技术来改变视频监控和分析。这项革命性的技术增强了视觉智能&#xff0c;是关键行业创新解决方案的驱动因素。在本文中&#xff0c;我们将介绍IVA的好处、…...

tomcat一闪而过,按任意键继续以及控制台中文乱码问题

问题描述 今天在打开tomcat,启动startup.bat程序时 tomcat直接闪退,后面查找资料后发现,可以通过编辑startup.bat文件内容,在最后一行加入pause即可让程序不会因为异常而终止退出 这样方便查看tomcat所爆出的错误: 然后,我明确看到我的tomcat启动程序显示如下的内容,没有明确…...

go 集成base64Captcha 支持多种验证码

base64Captcha 是一个基于 Go 语言开发的验证码生成库&#xff0c;主要用于在 Web 应用中集成验证码功能&#xff0c;以增强系统的安全性。以下是其主要特点和简介&#xff1a; base64Captcha主要功能 验证码类型丰富&#xff1a;支持生成多种类型的验证码&#xff0c;包括纯…...

【数据结构】线性表--栈

【数据结构】线性表--栈 一.什么是栈二.栈的实现1.栈结构定义&#xff1a;2.栈的初始化&#xff1a;3.栈的销毁&#xff1a;4.插入函数&#xff1a;5.删除函数&#xff1a;6.求栈顶元素&#xff1a;7.求数据个数&#xff1a;8.判空&#xff1a; 三.总结 一.什么是栈 栈是一种重…...

基于亚博K210开发板——麦克风录播测试

开发板 亚博K210开发板 实验目的 本次测试主要学习 K210 通过 I2S 接收和发送的功能&#xff0c;麦克风录音&#xff0c;扬声器播放。 实验准备 实验元件 扬声器、麦克风 元件特性 K210 开发板的麦克风同样是使用 I2S 传输数据&#xff0c;只不过麦克风使用的是 I2S…...

操作系统-锁/内存/中断/IO

文章目录 锁自旋锁互斥锁悲观锁和乐观锁 内存管理物理/虚拟内存页表段表虚拟内存布局写时复制copy on writebrk&#xff0c;mmap页面置换算法 中断中断分类中断流程 网络I/OI/O模型服务器处理并发请求 锁 自旋锁 自旋锁是一种基于忙等待&#xff08;Busy-Waiting&#xff09;…...

割点与其例题

割点 定义&#xff1a; 若一个点在图中被去掉后&#xff0c;图的连通块个数增加&#xff0c;那么这个点就被称为“割点”。如下图所示红点。 定义说白了就是若去掉一个点&#xff0c;图被“断开”的点称为割点。 朴素算法&#xff1a; 枚举每个点 u。遍历图&#xff0c;如果…...

CSS实现文本自动平衡text-wrap: balance

不再有排版孤行和寡行 我们都知道那些标题&#xff0c;最后一个单词换行并单独站在新行上&#xff0c;破坏了视觉效果&#xff0c;看起来很奇怪。当然&#xff0c;有老式的 手动换行或将内容分成不同部分。但您听说过text-wrap: balance吗&#xff1f; 通过应用text-wrap: bal…...

【未完】【GNN笔记】EvolveGCN:Evolving Graph Convolutional Networks for Dynamics Graphs

Evolving Graph Convolutional Networks for Dynamics Graphs 视频链接&#xff1a;《图神经网络》 相关系列&#xff1a; 《Dynamic Graph的分类》《动态图网络之Dynamic Self-Attention Network》 文章目录 Evolving Graph Convolutional Networks for Dynamics Graphs一、…...

【愚公系列】《Manus极简入门》042-投资策略分析师:“投资智慧导航”

&#x1f31f;【技术大咖愚公搬代码&#xff1a;全栈专家的成长之路&#xff0c;你关注的宝藏博主在这里&#xff01;】&#x1f31f; &#x1f4e3;开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主&#xff01; &#x1f…...

《AI大模型应知应会100篇》第65篇:基于大模型的文档问答系统实现

第65篇&#xff1a;基于大模型的文档问答系统实现 &#x1f4da; 摘要&#xff1a;本文详解如何构建一个基于大语言模型&#xff08;LLM&#xff09;的文档问答系统&#xff0c;支持用户上传 PDF 或 Word 文档&#xff0c;并根据其内容进行智能问答。从文档解析、向量化、存储到…...

P1439 【模板】最长公共子序列

P1439 【模板】最长公共子序列 - 洛谷 题目描述 给出1, 2, …, n的两个排列P1​和P2​&#xff0c;求它们的最长公共子序列。 输入格式 第一行是一个数n。 接下来两行&#xff0c;每行为n个数&#xff0c;为自然数1, 2, …, n的一个排列。 输出格式 一个数&#xff0c;即…...

LLaMA-Factory:环境准备

一、硬件和系统 操作系统: Ubuntu 24.04.2 LTS&#xff08;64位&#xff09;GPU: NVIDIA RTX 4090 笔记本 GPU&#xff0c;16GB显存CPU: 建议高性能多核 CPU&#xff08;如 Intel i7/i9 或 AMD Ryzen 7/9&#xff09;以支持数据预处理&#xff0c;我的是32核。RAM: 至少 32GB&…...

polarctf-web-[rce1]

考点&#xff1a; (1)RCE(exec函数) (2)空格绕过 (3)执行函数(exec函数) (4)闭合(ping命令闭合) 题目来源&#xff1a;Polarctf-web-[rce1] 解题&#xff1a; 这段代码实现了一个简单的 Ping 测试工具&#xff0c;用户可以通过表单提交一个 IP 地址&#xff0c;服务器会执…...

AI实践用例---日程规划(通用日程管理文件ICS)灵感踩坑日常

我是一位践行独立开发者之路的菜鸟开发者。 由于执行力较差,常常有很多想法但是很多时候没有去践行。 所以我有了让大模型为我生成日程安排的想法,这确实可以,很简单。只需要将你的想法告诉ai就行了。 例如: 发给AI的提示词: 我想你帮我对,嗯,未来的一年做一个嗯,大…...

MySQL 8.0 OCP 1Z0-908 121-130题

Q121.Examine these statements and output: mysql> GRANT PROXY ON accountinglocalhost TO ’ ‘ ‘%’; mysql> SELECT USER(), CURRENT_USER(), proxy_user; --------------------------------------------------------- |USER() | CURRENT_USER() | proxy_user I | …...

InfluxDB 2.7 连续查询实战指南:Task 替代方案详解

InfluxDB 2.7 引入了 Task 功能&#xff0c;作为连续查询&#xff08;CQ&#xff09;的现代替代方案。本文详细介绍了如何使用 Task 实现传统 CQ 的功能&#xff0c;包括语法解析、示例代码、参数对比以及典型应用场景。通过实际案例和最佳实践&#xff0c;帮助开发者高效迁移并…...