C#中访问网盘的方法
业务背景:
有时需要在用c#写的web服务或winform中访问网络盘上面的文件,需要用c#代码手动创建网盘。
方法:
用win api来实现连接网络盘,如果是在iis下面的web服务所连接的网盘,读写权限在iis下面有权访问,并且在windows下面
是不可见的。如果是在win下面所创建的在iis下面是没有权限访问题,下面就是原码。
1 先创建一个网盘的类文件WNetHelper
using System.Runtime.InteropServices;
using System.IO;
using System;
public class WNetHelper
{[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);[StructLayout(LayoutKind.Sequential)]public class NetResource{public int dwScope;public int dwType;public int dwDisplayType;public int dwUsage;public string lpLocalName;public string lpRemoteName;public string lpComment;public string lpProvider;}/// <summary>/// 为网络共享做本地映射/// </summary>/// <param name="username">访问用户名(windows系统需要加计算机名,如:comp-1/user-1)</param>/// <param name="password">访问用户密码</param>/// <param name="remoteName">网络共享路径(如://192.168.0.9/share)</param>/// <param name="localName">本地映射盘符</param>/// <returns></returns>public static uint WNetAddConnection(string username, string password, string remoteName, string localName){NetResource netResource = new NetResource();netResource.dwScope = 2;netResource.dwType = 1;netResource.dwDisplayType = 3;netResource.dwUsage = 1;netResource.lpLocalName = localName;netResource.lpRemoteName = remoteName.TrimEnd('/');uint result = WNetAddConnection2(netResource, password, username, 0);return result;}public static uint WNetCancelConnection(string name, uint flags, bool force){uint nret = WNetCancelConnection2(name, flags, force);return nret;}
}
2 调用创建网盘示例
string picturePath1 = "";string picturePath2 = "";string NetRoot = "";string NetPath = "";string NetUser = "";string NetPSW = "";uint state = 0;NetRoot = ConfigurationManager.ConnectionStrings["NetRoot"].ConnectionString;NetPath = ConfigurationManager.ConnectionStrings["NetPath"].ConnectionString;NetUser = ConfigurationManager.ConnectionStrings["NetUser"].ConnectionString;NetPSW = ConfigurationManager.ConnectionStrings["NetPSD"].ConnectionString;picturePath1 = ConfigurationManager.ConnectionStrings["PicturePath1"].ConnectionString;picturePath2 = ConfigurationManager.ConnectionStrings["PicturePath2"].ConnectionString;if (!Directory.Exists(NetRoot)){//WNetHelper.WNetAddConnection(@"计算机名称\登录账户", "登录密码", @"映射路径", @"映射盘符名称"); state = WNetHelper.WNetAddConnection(NetUser, NetPSW, NetPath, NetRoot);}if (state.Equals(0)){}else{Console.WriteLine("添加网络驱动器错误,错误号:" + state.ToString());}
3 网盘建好后,就同本地盘一样的方法进行访问了。测试函数:
public string A_TEST_A(string file){string filepath = picturePath1 + file + ".jpg";if (File.Exists(filepath)){return filepath+"文件存在";}else{filepath = picturePath2 + file + ".jpg";if (File.Exists(filepath)){return filepath + "文件存在";}elsereturn filepath+"文件不存在";}}
C#中访问网盘的方法相关推荐
- 20220413安装旧版本的百度网盘的方法
20220413安装旧版本的百度网盘的方法 您的电脑已安装版本更高的百度网盘客户端, 如需降级安装,请先卸载当前版本. 新电脑装最新的百度网盘之后,感觉不适应,降级的时候出现这个问题了! 人不如旧,衣 ...
- Android盒子看百度云,【沙发管家】智能电视和电视盒子如何使用百度网盘的方法!看你想看的片子!...
原标题:[沙发管家]智能电视和电视盒子如何使用百度网盘的方法!看你想看的片子! 很多小伙伴把重要的视频资料放到了百度网盘里,想在智能电视或者电视盒子上观看.不过百度网盘没有TV版本很是纠结,不过小伙伴 ...
- 【Groovy】编译时元编程 ( ASTTransformation#visit 方法中访问 Groovy 类、方法、字段、属性 | 完整代码示例及进行编译时处理的编译过程 )
文章目录 一.ASTTransformation#visit 方法中访问 Groovy 类.方法.字段.属性 二.完整代码示例及进行编译时处理的编译过程 1.Groovy 脚本 Groovy.groo ...
- php节点对象,JavaScript_JavaScript中访问节点对象的方法有哪些如何使用,JavaScript中访问节点对象的方法 - phpStudy...
JavaScript中访问节点对象的方法有哪些如何使用 JavaScript中访问节点对象的方法有哪些? var obj = document.getElementById('fdafda'); va ...
- 博客教程中百度网盘地址
博客中百度网盘地址: 链接:https://pan.baidu.com/s/1ncGK5fXMBmmkuZGbBSohBw 提取码:v67x 复制这段内容后打开百度网盘手机App,操作更方便哦 转载于 ...
- 115网盘linux 下载速度慢,linux vps 上 下载115网盘 的方法
大多数童鞋买的vps都是只支持linux系统的,因为版权的问题,windows系统的vps价格上面要贵一些.但是,遇到要下载网盘文件时,没有装桌面只有shell的linux vps就表示压力大了,幸好 ...
- 全网最简单的百度网盘提速方法!!!!
全网最简单的百度网盘提速方法!! PanDownload 百度网盘是一个比较常用的软件啦,不管是看剧还是下文件基本上都离不开百度网盘,但是每次想要下文件的时候因为太穷冲不起会员所以速度超级慢!!!在网 ...
- 教师资格证考试备考资料大合集(历年真题+常用考点+模拟试题+面试),共460份,987M,附件中为网盘链接
教师资格证考试备考资料大合集(历年真题+常用考点+模拟试题+面试),共460份,987M,附件中为网盘链接. 下载地址:https://download.csdn.net/download/mengc ...
- 【推荐】2022年环保行业研究报告产业发展前景市场投资行情分析白皮书(附件中为网盘地址,报告持续更新)
[推荐]2022年环保行业研究报告产业发展前景市场投资行情分析白皮书(附件中为网盘地址,报告持续更新),每月至少更新一次. 下载地址:https://download.csdn.net/downloa ...
最新文章
- 关于bitmap,为什么android会有bitmap
- MULE ESB中的一些值得关注的地方
- 可以分屏吗_LED透明屏分屏是怎么一回事?
- 窗口之间值、控件的传递
- webservice 服务器无法处理请求_Message Queue与WebService比较
- [emacs] 用 ido 或 anything 进行选择
- vbs获取程序窗体句柄_VBS调用windows api函数(postmessage)实现后台发送按键脚本...
- [运维笔记] - (命令).Windows server常用网络相关命令
- 使用mybaits遇见有大写的sql语句错误的bug分析
- 解决centos7 ssh连接慢的问题
- python 下载公众号文章_python如何导出微信公众号文章方法详解
- 网站Webshell大马密码极速暴力爆破工具-cheetah
- 博弈论——人生就是在博弈
- 百度地图坐标转换及跨域
- 10秒钟搞定圆柱齿轮设计所有课题
- thinkpad l470 一种键盘错乱解决方法
- 百练2801解题报告---填词
- 2022年中南大学计算机考研复试内容是什么
- 蓝奏云直链解析php,【带源码】新思路--蓝奏云直链解析
- 数据分享|PYTHON用决策树分类预测糖尿病和可视化实例