zoukankan      html  css  js  c++  java
  • (转)C#读写共享文件

      原文地址:https://www.cnblogs.com/guohu/p/4694515.html

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Text;
    using System.Diagnostics;
    using System.IO;
    
    
    namespace WebApplication2
    {
    
        public class FileShare
        {
            public FileShare() { }
    
            public static bool connectState(string path)
            {
                return connectState(path,"","");
            }
    
            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 " + path + " /User:" + userName + " " + passWord + " /PERSISTENT:YES";
                    proc.StandardInput.WriteLine(dosLine);
                    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;
            }
    
    
            //read file
            public static void ReadFiles(string path)
            {
                try
                {
                    // Create an instance of StreamReader to read from a file.
                    // The using statement also closes the StreamReader.
                    using (StreamReader sr = new StreamReader(path))
                    {
                        String line;
                        // Read and display lines from the file until the end of 
                        // the file is reached.
                        while ((line = sr.ReadLine()) != null)
                        {
                            Console.WriteLine(line);
                            
                        }
                    }
                }
                catch (Exception e)
                {
                    // Let the user know what went wrong.
                    Console.WriteLine("The file could not be read:");
                    Console.WriteLine(e.Message);
                } 
    
            }
    
            //write file
            public static void WriteFiles(string path)
            {
                try
                {
                    // Create an instance of StreamWriter to write text to a file.
                    // The using statement also closes the StreamWriter.
                    using (StreamWriter sw = new StreamWriter(path))
                    {
                        // Add some text to the file.
                        sw.Write("This is the ");
                        sw.WriteLine("header for the file.");
                        sw.WriteLine("-------------------");
                        // Arbitrary objects can also be written to the file.
                        sw.Write("The date is: ");
                        sw.WriteLine(DateTime.Now);
                    }
                }
                catch (Exception e)
                {
                    // Let the user know what went wrong.
                    Console.WriteLine("The file could not be read:");
                    Console.WriteLine(e.Message);
                }
            }
        }
    
        public partial class _Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                
                bool status = false;
    
                //连接共享文件夹
                status = FileShare.connectState(@"\10.80.88.180	est", "admin", "admin");
                if (status)
                {
                    DirectoryInfo theFolder = new DirectoryInfo(@"\10.80.88.180	est");
    
                    //先测试读文件,把目录路径与文件名连接
                    string filename = theFolder.ToString()+"\good.txt";
                    FileShare.ReadFiles(filename);
    
                    //测试写文件,拼出完整的路径
                    filename = theFolder.ToString() + "\bad.txt";
                    FileShare.WriteFiles(filename);
                   
                    //遍历共享文件夹,把共享文件夹下的文件列表列到listbox
                    foreach (FileInfo nextFile in theFolder.GetFiles())
                    {
                        ListBox1.Items.Add(nextFile.Name);
                    }
                }
                else
                {
                    ListBox1.Items.Add("未能连接!");
                }
            }
        }}
    

         上面园友的代码实现共享文件的读写,但是实际实用中遇到一点问题,提示“不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接。。。”。后来发现是在打开共享文件目录的情况下,运行程序就会出错,此时应该是运行了两次登录吧?!(开放环境 VS2013+Win7 64)

        

            解决方法:打开cmd命令窗口:

             1.输入命令:net use查看你当前与网络资源的连接,例如驱动器映射、IPC连接。

       2.net use * /del /y命令中断开所有连接.

      

      参考资料:https://blog.csdn.net/liuhaomatou/article/details/39395209

  • 相关阅读:
    聊聊WS-Federation
    用双十一的故事串起碎片的网络协议(上)
    责任链模式的使用-Netty ChannelPipeline和Mina IoFilterChain分析
    最小化局部边际的合并聚类算法(中篇)
    最小化局部边际的合并聚类算法(上篇)
    UVaLive 7371 Triangle (水题,判矩形)
    UVaLive 7372 Excellence (水题,贪心)
    POJ 3312 Mahershalalhashbaz, Nebuchadnezzar, and Billy Bob Benjamin Go to the Regionals (水题,贪心)
    UVa 1252 Twenty Questions (状压DP+记忆化搜索)
    UVa 10817 Headmaster's Headache (状压DP+记忆化搜索)
  • 原文地址:https://www.cnblogs.com/hhhh2010/p/8674242.html
Copyright © 2011-2022 走看看