C#操作共享文件在两台电脑间进行读写

yangmengke2018 2022-01-02 原文


C#操作共享文件在两台电脑间进行读写

注塑机远程连接

 

 

 

两台电脑通过网线互联进行文件共享,请参考 https://blog.csdn.net/qq_38161654/article/details/80865241

1.设置电脑一,理解为客户端

  设置TCP/IPv4  IP地址和默认网关:192.168.0.10,子网掩码:255.255.255.0

2.设置电脑二,理解为服务器,共享文件在此电脑上

  设置TCP/IPv4  IP地址:192.168.0.100,子网掩码:255.255.255.0,默认网关:192.168.0.10

3.Ping测试:cmd  “ping 192.168.0.10”或“ping 192.168.0.100”

4.电脑而桌面设置一文件夹:命名hfg,右键属性,然后点击共享,再点击高级共享 ,把共享此文件夹前面的方框勾上 ,设置共享的权限

  可以设置允许修改写入等开放文件夹权限

5.电脑一输入:\\192.168.0.100   或   \\电脑二电脑名\hfg

—————————————————————————————————–

6.修改电脑二计算机名:MES-111

7.给电脑二添加管理员账户:MES,密码:123456

8.编程连接的时候需要用到管理员账户和登录密码

代码:

        /// <summary>
        /// 判断文本是否以\\结尾,如果不是在结尾添加\\
        /// </summary>
        /// <param name="checkString"></param>
        /// <returns></returns>
        public static string BackSlash(string checkString)
        {
            string strTmp = "";
            strTmp = checkString;
            try
            {
                if (!string.IsNullOrEmpty(checkString))
                {
                    if (strTmp[strTmp.Length - 1].ToString() != "\\")
                    {
                        strTmp += "\\";
                    }
                }
                else
                {
                    strTmp = "";
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex);
            }
            return strTmp;
        }

        /// <summary>
        /// 判断连接状态
        /// </summary>
        /// <param name="path">共享文件夹</param>
        /// <param name="userName">管理员名字,不是计算机名</param>
        /// <param name="passWord">密码</param>
        /// <returns></returns>
        public static bool connectState(string path, string userName, string passWord)
        {
            bool Flag = false;
            Process proc = new Process();
            try
            {
                proc.StartInfo.FileName = "cmd.exe";
                proc.StartInfo.UseShellExecute = false;
                proc.StartInfo.RedirectStandardInput = true;
                proc.StartInfo.RedirectStandardOutput = true;
                proc.StartInfo.RedirectStandardError = true;
                proc.StartInfo.CreateNoWindow = true;
                proc.Start();
                string dosLine = @"net use /delete * /yes " + System.Environment.NewLine;
                proc.StandardInput.WriteLine(dosLine);
                String dosLine2;
                dosLine2 = @"net use " + path + " /User:" + userName + " " + passWord + " /PERSISTENT:YES " + System.Environment.NewLine;
                proc.StandardInput.WriteLine(dosLine2);
                proc.StandardInput.WriteLine("exit");
                while (!proc.HasExited)
                {
                    proc.WaitForExit(1000);
                }
                string errormsg = proc.StandardError.ReadToEnd();
                proc.StandardError.Close();
                if (string.IsNullOrEmpty(errormsg))
                {
                    Flag = true;
                }
                else
                {
                    throw new Exception(errormsg);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                proc.Close();
                proc.Dispose();
            }
            return Flag;
        }

        private void btn_conn_Click(object sender, EventArgs e)
        {
            string strPath0 = @"\\192.168.0.100\hfg";   //共享文件夹
            if (connectState(strPath0, "MES", "Ab123456"))
            {
                MessageBox.Show("成功");
            }
            else
            {
                MessageBox.Show("失败");
            }
        }

        private void btn_Read_Click(object sender, EventArgs e)
        {
            string strPath0 = @"\\192.168.0.100\hfg";   //共享文件夹
            string destFn = "888.txt";    //要读取共享文件夹下文件的名称
            string destFnNew = "888new.txt";
            bool stt1 = connectState(strPath0, "MES", "Ab123456");

            if (stt1)
            {
                string FullPath = BackSlash(strPath0) + destFn;
                string newPath = BackSlash(strPath0) + destFnNew;
                if (File.Exists(FullPath))
                {
                    File.Copy(FullPath, newPath);
                    if (File.Exists(newPath))
                    {
                        StreamReader sr = new StreamReader(newPath);
                        string strTmp = sr.ReadToEnd();
                        sr.Close();
                        tb_2.Text = strTmp;
                        File.Delete(FullPath);
                        File.Delete(newPath);
                    }
                }
            }
        }

        private void btn_Write_Click(object sender, EventArgs e)
        {
            //string txtPath = Directory.GetCurrentDirectory() + "\\111.txt";    //本地txt文件
            string strPath0 = @"\\192.168.0.100\hfg";   //共享文件夹
            string destFn = "888.txt";    //要在共享文件夹下生成的文件的名称
            bool stt1 = connectState(strPath0, "MES", "Ab123456");

            if (stt1)
            {
                if (string.IsNullOrEmpty(tb_1.Text))
                {
                    MessageBox.Show("为空");
                    return;
                }
                //BackSlash(strPath0) + destFn是共享文件夹下要存储的文件的绝对路径
                //就是把本地的txt文件放到另一台电脑共享文件夹下
                FileStream fs = new FileStream(BackSlash(strPath0) + destFn, FileMode.Create);
                using (StreamWriter sw = new StreamWriter(fs))
                {
                    sw.Write(tb_1.Text.Trim());
                    sw.Flush();
                    sw.Close();
                }
                fs.Close();
            }
        }

代码

发表于
2019-12-23 14:08 
杨萌珂 
阅读(1142
评论(0
编辑 
收藏 
举报

 

版权声明:本文为yangmengke2018原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/yangmengke2018/p/12083447.html

C#操作共享文件在两台电脑间进行读写的更多相关文章

随机推荐

  1. 程序人生:你以为“删库”就能跑得了路?跑得了和尚跑不了庙

    大家应该还记得,在今年 2 月份的时候,国内一则程序员删库的消息传遍了全网。 这则消息刷屏的原因很简单——他的 […]...

  2. Linux知识再回顾

    Linux知识再回顾 Linux再回顾 下面是自己之前centos7的笔记总结第二篇,第一篇是19年就写过了一 […]...

  3. 机器学习算法介绍 – cv_ml_张欣男

    机器学习算法介绍 什么是程序(Program) 计算机程序,是指为了得到某种结果而可以由计算机(等具有信息处理 […]...

  4. unity3D——登录界面

    效果图: 代码如下: //用户名 private var editUsername : String; //密 […]...

  5. 阿里云服务器内部dns可能出错

    今天部署一个阿里云服务器,所有配置项都改好了,就是连接不上本机。 反复查找,防火墙端口和网卡接口都配置对了,s […]...

  6. 分治优化决策单调性

    <!–more–> 分治优化决策单调性 在我们了解的DP方程中,经常会有$ […]...

  7. 带你认识5G技术

    一、移动通讯的发展历程  1.1、移动通讯具有代际演进规律 “G”代表一代 每10年一个周期,如下图所示:   […]...

  8. 12种思维导图工具,助你成高手【附案例:个人成长计划】

    钱塘&gogoat IT达人圈 2017-12-09 编者按:思维导图现在越来越广泛,最近有朋友利用思 […]...

展开目录

目录导航