FileShare.cs 3.5 KB
using log4net;
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
 

namespace OnlineStore.DeviceLibrary.doubleStore
{
    public class FileShare
    {
        public static readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
        public FileShare() { }
        public static bool isConnect = false;
        public static bool connectState(string path)
        {
            return connectState(path, "", "");
        }

        public static bool connectState(string path, string userName, string passWord)
        {
            bool isConnect = 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))
                {
                    isConnect = true; 
                }
                else
                {
                    LogUtil.error(LOGGER,"连接错误[" + path + "]:" + errormsg);
                }
            }
            catch (Exception ex)
            {
                LogUtil.error(LOGGER, "出错[" + path + "] "+ex.ToString());
            }
            finally
            {
                proc.Close();
                proc.Dispose();
            }

            return isConnect;
        } 
        //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)
            {

                LogUtil.error(LOGGER, "出错The file could not be read: [" + path + "]"+e.ToString());
            }

        }

        //write file
        public static void WriteFiles(string path,string[] lines)
        {
            try
            {
                using (StreamWriter sw = new StreamWriter(path))
                {
                    foreach (string str in lines)
                    {
                        sw.WriteLine(str);
                    }
                }
            }
            catch (Exception e)
            {
                LogUtil.error(LOGGER, "出错The file could not be read[" + path + "]: "+ e.ToString()); 
            }
        }
    }

}