文档章节

局域网共享文件读写的实现方式

夏至如沫
 夏至如沫
发布于 2018/12/19 14:53
字数 413
阅读 11
收藏 0

代码片段

首先是设置共享目录,支持用户和密码等权限控制

然后我们可以使用Windows资源管理器操作共享目录下的文件

这中间隐藏了资源管理器帮我们建立目录映射和连接的过程,如果设置了用户名和密码,在进入目录前就需要输入验证。

如何以代码的方式实现

共享目录最终的操作是跟本地目录一致的,代码实现主要就是为了完成目录映射和连接的建立和关闭。这一过程可以通过COM调用实现。

  1. 首页建立跟网络目录的连接
  2. 在共享下的操作内容
  3. 使用完成后关闭练级

调用封装

// 打开连接
[DllImport("mpr.dll", EntryPoint = "WNetAddConnection2")]
private static extern uint WNetAddConnection2(NetResource lpNetResource, string lpPassword, string lpUsername, uint dwFlags);
// 关闭连接
[DllImport("Mpr.dll", EntryPoint = "WNetCancelConnection2")]
private static extern uint WNetCancelConnection2(string lpName, uint dwFlags, bool fForce);

使用示例

try
{
	uint result = WNetConnectionHelper.WNetAddConnection(_UserName, _Passeord, _ShareDefaultPath, null);
	using (FileStream fs = File.Open(Path.Combine(_ShareDefaultPath, "withmiao.txt"), FileMode.OpenOrCreate, FileAccess.ReadWrite))
	{
		// 向文件追加时间戳
		using (StreamWriter sw = new StreamWriter(fs))
		{
			// 设置到行尾
			sw.BaseStream.Position = sw.BaseStream.Length;
			sw.WriteLine(DateTime.Now.ToString());
			sw.Close();
		}
		fs.Close();
	}
}
catch (Exception ex)
{
	throw ex;
}
finally
{
	// 完成后关闭连接
	uint nColse = WNetConnectionHelper.WNetCancelConnection(_UserName, 1, true);
}

Demo示例

 

© 著作权归作者所有

共有 人打赏支持
夏至如沫

夏至如沫

粉丝 11
博文 41
码字总数 24322
作品 0
郑州
后端工程师
私信 提问
企业网盘居然支持高速局域网文件传输工具(速度可达20M)

高速局域网文件传输工具Mobox工作方式介绍: 1、局域网文件传输的实现 1)局域网文件传输工具启动的方式 l 通过资源管理器右键 l 通过Mobox网盘 l 通过AM8 即时通 2)局域网文件传输工具人员...

gungho
2018/03/20
0
0
LAN、WAN和WLAN的区别

LAN 局域网 WAN 广域网 WLAN 无线局域网 局域网(Local Area Network,LAN) 是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、...

墨梅
2014/03/07
0
0
C++共享内存实现(windows和linux)

版权声明:原创文章如需转载,请在左侧博主描述栏目扫码联系我并取得授权,谢谢 https://blog.csdn.net/u012234115/article/details/82114631 共享内存是一种进程间通信的方式,速度比较快 ...

踏莎行hyx
2018/08/27
0
0
基于Nginx和Zookeeper实现Dubbo的分布式服务

一、前言 公司的项目基于阿里的Dubbo微服务框架开发。为了符合相关监管部门的安全要求,公司购买了华东1、华东2两套异地服务器,一套是业务服务器,一套是灾备服务器。准备在这两套服务器上实...

jmcui
2018/05/22
0
0
ubuntu下虚拟机的设置及Android开发

在android开发中,有应用开发和系统开发,如果是后者的话,需要在Linux环境下开发,而ubuntu个人感觉比较好用一些。下面的文件详细的介绍了如何安装ubuntu,我这里就不在累述了,网址如下,h...

迷途d书童
2012/03/30
677
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 没时间 没头发 但有钱

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @开源中国总经办主任 :分享齐一的单曲《这个年纪》 《这个年纪》- 齐一 手机党少年们想听歌,请使劲儿戳(这里) @肿肿卷 :我真的可以睡一天...

小小编辑
33分钟前
11
4
Django进阶 1.1 ORM基础—ORM 1.2.1 增删改查之查询 1.2.2 删改增 (1) 1.2.3 删改增 (2)

ORM基础 ORM是Django操作数据库的API,Django的作者将sql语句封装在里面供我们使用。 我们前面还提到过Django提供一个模拟数据库的工具,sqlite,供我们学习测试使用。 如果我们想使用mysql...

隐匿的蚂蚁
今天
3
0
Windows 上安装 Scala

在安装 Scala 之前需要先安装 Java 环境,具体安装的详细方法就不在这里描述了。 您可以自行搜索我们网站中的内容获得其他网站的帮助来获得如何安装 Java 环境的方法。 接下来,我们可以从 ...

honeymose
今天
3
0
数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
3
0
nginx日志自动切割

1.日志配置(Nginx 日志) access.log----记录哪些用户,哪些页面以及用户浏览器,IP等访问信息;error.log------记录服务器错误的日志 #配置日志存储路径:location / {      a...

em_aaron
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部