C# 文件读取和写入(UNC(网络共享)/本地文件/url文件)
来源:互联网 发布:linux系统网络邻居 编辑:程序博客网 时间:2024/05/29 03:19
新建一个类,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Collections;
namespace WIFI_Test_Tool.Class
{
class UpDown_LoadFile
{
[StructLayout(LayoutKind.Sequential)]
protected struct SHARE_INFO_1
{
[MarshalAs(UnmanagedType.LPWStr)]
public string shi1_netname;
[MarshalAs(UnmanagedType.U4)]
public uint shi1_type;
[MarshalAs(UnmanagedType.LPWStr)]
public string shi1_remark;
}
[DllImport("Netapi32.dll", EntryPoint = "NetShareEnum")]
protected static extern int NetShareEnum(
[MarshalAs(UnmanagedType.LPWStr)] string servername,
[MarshalAs(UnmanagedType.U4)] uint level,
out IntPtr bufptr,
[MarshalAs(UnmanagedType.U4)] int prefmaxlen,
[MarshalAs(UnmanagedType.U4)] out uint entriesread,
[MarshalAs(UnmanagedType.U4)] out uint totalentries,
[MarshalAs(UnmanagedType.U4)] out uint resume_handle
);
public string[] NetShareList(string server)
{
IntPtr buffer;
uint entriesread;
uint totalentries;
uint resume_handle;
//-1应该是获取所有的share,msdn里面的例子是这么写的,返回0表示成功
if (NetShareEnum(server, 1, out buffer, -1, out entriesread, out totalentries, out resume_handle) == 0)
{
Int32 ptr = buffer.ToInt32();
ArrayList alShare = new ArrayList();
for (int i = 0; i < entriesread; i++)
{
SHARE_INFO_1 shareInfo = (SHARE_INFO_1)Marshal.PtrToStructure(new IntPtr(ptr), typeof(SHARE_INFO_1));
if (shareInfo.shi1_type == 0)//Disk drive类型
{
alShare.Add(shareInfo.shi1_netname);
}
ptr += Marshal.SizeOf(shareInfo);//有点类似C代码
}
string[] share = new string[alShare.Count];
for (int i = 0; i < alShare.Count; i++)
{
share[i] = alShare[i].ToString();
}
return share;
}
else
return null;
}
}
}
- C# 文件读取和写入(UNC(网络共享)/本地文件/url文件)
- C# 打开网络文件(UNC)
- .net 如何读取共享文件 (UNC)
- OC如何读取本地文件和网络文件
- c#文件读取和写入
- 使用Java读取xlxs文件和写入txt文件,并将数据写入到本地文件
- C# 读取写入文件
- c#大文件读取和写入数据库
- c# 读取和写入txt文件
- C#写入和读取ini文件
- C#大文件读取和写入数据库
- C#文件的读取和写入
- C# winform写入和读取TXT文件
- C#文件写入和读取简单使用
- C# Byte[]数组读取和写入文件
- 文件读取和写入
- 文件读取和写入
- 文件读取和写入
- terminal无法设置透明背景解决方案- ubuntu14.04 降级 gnome-terminal至3.6.2
- zookeeper集群配置
- WTL框架小结
- 通过Gearman实现MySQL到Redis的数据复制
- PHP初学-http简述
- C# 文件读取和写入(UNC(网络共享)/本地文件/url文件)
- Java中toString()方法的使用
- PAT 1070. Mooncake (25)
- CloseHandle()
- Go 语言sync中waitgroup使用.小实例
- eclipse的Android项目不能运行
- CALayer1-简介
- [C++11 并发编程] 15 承诺promise
- 几何变换(二维、三维)