winform 复制远程文件

本文介绍如何使用WNetAddConnection2 API实现磁盘映射,并通过此方法像操作本地磁盘一样从远程获取文件。同时展示了具体的C#代码示例,包括建立连接、文件复制及断开连接的过程。

1,调用API的方法WNetAddConnection2实现磁盘映射,这样就可以像操作本地磁盘一样获取有用的文件

using System.IO;
using System.Runtime.InteropServices; 

       [StructLayout(LayoutKind.Sequential)]
        public class NetResource
        {
            public int dwScope;
            public int dwType;
            public int dwDisplayType;
            public int dwUsage;
            public String LocalName;
            public String RemoteName;
            public String Comment;
            public String Provider;
        }  

        [DllImport("mpr.dll",CharSet   =   CharSet.Ansi)]  
         public   static   extern   int   WNetAddConnection2(   NetResource   netResource,  String   password,       String   Username,   int   Flag);
        [DllImport("mpr.dll", CharSet = CharSet.Ansi)]
        public static extern int WNetCancelConnection2(String localname, int flag, bool ss);    
         static   void   Main(string[]   args)  
         {
             //用户密码
             string password = System.Configuration.ConfigurationSettings.AppSettings["password"];
             //用户名
             string userName = System.Configuration.ConfigurationSettings.AppSettings["userName"];

             NetResource   myNetResource   =   new   NetResource();  
             myNetResource.dwScope   =   2;//RESOURCE_GLOBALNET  
             myNetResource.dwType   =   1   ;//RESOURCETYPE_DISK  
             myNetResource.dwDisplayType   =   3;//RESOURCEDISPLAYTYPE_SHARE  
             myNetResource.dwUsage   =   1;//RESOURCEUSAGE_CONNECTABLE  
             myNetResource.LocalName   =   "w:";
             myNetResource.RemoteName = remotePath;  
             myNetResource.Provider   =   null;
             //建立与远程机器的连接
             int ret = WNetAddConnection2(myNetResource, password, userName, 0);
             //复制文件
             File.Copy("w://ss.txt", "C://Documents and Settings//All Users//Documents//ss.txt", true);
             //关闭连接
             int retdel = WNetCancelConnection2(myNetResource.LocalName, 0, true);
        }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值