zoukankan      html  css  js  c++  java
  • C# 读写网上邻居中的共享文件

    读写网上邻居共享的文件夹,和操作本地文件夹类似,只要有权限读取写入即可。

    分为以下2步:

    1.打通共享文件夹权限

    2.操作文件

    打通共享文件夹权限

     1         /// <summary>
     2         /// 连接共享文件
     3         /// </summary>
     4         /// <param name="path">共享文件地址</param>
     5         /// <param name="userName">用户名</param>
     6         /// <param name="passWord">密码</param>
     7         /// <returns>true:连接成功 false:连接失败</returns>
     8         public static bool ConnectState(string path, string userName, string passWord)
     9         {
    10             bool Flag = false;
    11             Process proc = new Process();
    12             try
    13             {
    14                 proc.StartInfo.FileName = "cmd.exe";
    15                 proc.StartInfo.UseShellExecute = false;
    16                 proc.StartInfo.RedirectStandardInput = true;
    17                 proc.StartInfo.RedirectStandardOutput = true;
    18                 proc.StartInfo.RedirectStandardError = true;
    19                 proc.StartInfo.CreateNoWindow = true;
    20                 proc.Start();
    21                 string dosLine = @"net use " + path + " /User:" + userName + " " + passWord + " /PERSISTENT:YES";
    22                 proc.StandardInput.WriteLine(dosLine);
    23                 proc.StandardInput.WriteLine("exit");
    24                 while (!proc.HasExited)
    25                 {
    26                     proc.WaitForExit(1000);
    27                 }
    28                 string errormsg = proc.StandardError.ReadToEnd();
    29                 proc.StandardError.Close();
    30                 if (string.IsNullOrEmpty(errormsg))
    31                 {
    32                     Flag = true;
    33                 }
    34                 else
    35                 {
    36                     throw new Exception(errormsg);
    37                 }
    38             }
    39             catch (Exception ex)
    40             {
    41                 throw ex;
    42             }
    43             finally
    44             {
    45                 proc.Close();
    46                 proc.Dispose();
    47             }
    48 
    49             return Flag;
    50         }
    View Code

    创建文件夹

    1 DirectoryInfo dirInfo = new DirectoryInfo("\WIN-R3377JMR1LGShareFolder");
    2 if (dirInfo.Exists == false)
    3 {
    4     dirInfo.Create();
    5 }
    View Code

    上传文件

     1         /// <summary>
     2         /// 上传文件到共享文件夹
     3         /// </summary>
     4         /// <param name="sourceFile">本地文件</param>
     5         /// <param name="remoteFile">远程文件</param>
     6         public static void UpLoadFile(string sourceFile, string remoteFile)
     7         {
     8             //判断文件夹是否存在 ->不存在则创建
     9             var targetFolder = Path.GetDirectoryName(remoteFile);
    10             DirectoryInfo theFolder = new DirectoryInfo(targetFolder);
    11             if (theFolder.Exists == false)
    12             {
    13                 theFolder.Create();
    14             }
    15 
    16             try
    17             {
    18                 WebClient myWebClient = new WebClient();
    19                 NetworkCredential cread = new NetworkCredential();
    20                 myWebClient.Credentials = cread;
    21 
    22                 using (FileStream fs = new FileStream(sourceFile, FileMode.Open, FileAccess.Read))
    23                 {
    24                     using (BinaryReader r = new BinaryReader(fs))
    25                     {
    26                         byte[] postArray = r.ReadBytes((int)fs.Length);
    27                         using (Stream postStream = myWebClient.OpenWrite(remoteFile))
    28                         {
    29                             if (postStream.CanWrite == false)
    30                             {
    31                                 LogUtil.Error($"{remoteFile} 文件不允许写入~");
    32                                 return;
    33                             }
    34 
    35                             postStream.Write(postArray, 0, postArray.Length);
    36                         }
    37                     }
    38                 }
    39             }
    40             catch (Exception ex)
    41             {
    42                 string errMsg = $"{remoteFile}  ex:{ex.ToString()}";
    43                 LogUtil.Error(errMsg);
    44                 Console.WriteLine(errMsg);
    45             }
    46         }
    View Code
    作者:守望
    QQ:497886344    微信: yellowgiutou
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    做事的底线和逻辑
    我在华为的十年----徐家俊
    华为的冬天
    如何当好一个师长--林彪
    Base64 的那些事儿
    流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
    软件目的需求开发与管理
    车载行业认证资质
    tcpdump抓包分析 https://www.01hai.com/note/av263669
    packages.conifg
  • 原文地址:https://www.cnblogs.com/yellowgiutou/p/9989692.html
Copyright © 2011-2022 走看看