C# 局域网文件管理 访问共享文件夹

C# 局域网文件管理 访问共享文件夹,可以像本地一样操作文件或文件夹,共享的文件夹属性要添加Everyone权限,关掉防火墙。

可以先用CMD连接测试下:

C:\Users\Administrator>net use \\192.168.2.111\Calendars "1234567890" /user:"Administrator"

命令成功完成。

Win+R 输入 gpedit.msc ,设置下账号锁定权限,非必要,如果不能连接成功,就改下。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Runtime.InteropServices;

using System.Text;

using System.Threading.Tasks;

namespace CLord64.Utils

{

///

/// 局域网文件管理

///

public static class LanShareHelper

{

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]

private struct 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;

}

// 重点:ref NETRESOURCE

[DllImport("mpr.dll", CharSet = CharSet.Unicode)]

private static extern int WNetAddConnection2(ref NETRESOURCE lpNetResource, string lpPassword, string lpUserName, int dwFlags);

[DllImport("mpr.dll", CharSet = CharSet.Unicode)]

private static extern int WNetCancelConnection2(string lpName, int dwFlags, bool fForce);

private const int RESOURCETYPE_DISK = 0x00000001;

private const int CONNECT_UPDATE_PROFILE = 0x00000001;

///

/// 建立局域网共享会话

///

/// \\192.168.2.111\Calendars

/// Administrator

/// 1234567890

/// 0成功

public static int ConnectShare(string remotePath, string user, string password)

{

var nr = new NETRESOURCE

{

dwType = RESOURCETYPE_DISK,

lpRemoteName = remotePath

};

return WNetAddConnection2(ref nr, password, user, 0);

}

public static int DisconnectShare(string remotePath, bool force = true)

{

return WNetCancelConnection2(remotePath, CONNECT_UPDATE_PROFILE, force);

}

public static string GetErrorMsg(int errorCode)

{

switch (errorCode)

{

case 0: return "成功";

case 5: return "拒绝访问";

case 67: return "找不到网络路径";

case 1219: return "存在旧连接冲突,请先断开";

case 1326: return "用户名或密码错误";

default: return $"未知错误码:{errorCode}";

}

}

}

}

//static void Main(string[] args)

//{

// string sharePath = @"\\192.168.2.111\Calendars";

// string user = "Administrator";

// string pwd = "1234567890";

// // 先尝试断开旧连接,规避 1219 冲突,同时清理异常会话

// LanShareHelper.DisconnectShare(sharePath);

// int ret = LanShareHelper.ConnectShare(sharePath, user, pwd);

// string[] files = Directory.GetFiles(@"\\192.168.2.111\Calendars");

// string target = Path.Combine(@"\\192.168.2.111\Calendars", "test.txt");

// File.WriteAllText(target, "Test", Encoding.UTF8);

// // SkiaSharp 保存、File.Copy 都可以正常操作

// Console.WriteLine($"【调试共享路径】>{sharePath}<");

// Console.WriteLine(LanShareHelper.GetErrorMsg(ret));

// // 程序关闭前执行一次

// LanShareHelper.DisconnectShare(@"\\192.168.2.111\Calendars");

// Console.Read();

//}

文件名精灵2025年最新版 机器翻译 AI智能
...
批量修改文件名称、文件夹名称

免费使用 功能无限制

全面接入机器自动翻译功能,主流AI大模型智能改名

方便快捷,支持正则表达式、无需安装功能齐全、支持定制无广告、无插件,放心使用。

点击下载 点击下载
本站中所有的计算器的计算结果仅供参考,本站对此结果的准确性不承担任何责任,实际数额以银行/保险公司/国家相关机构确认的结果为准。
在线客服QQ:543690914,备案号: 苏ICP备15037649号-27。东海县白塔埠镇佳诚电脑经营部版权所有。