C# 操作共享資料夾
阿新 • • 發佈:2018-11-11
/// <summary> /// 共享檔案操作類 /// </summary> public class SharedFolderManager { public SharedFolderManager() { // //TODO: 在此處新增建構函式邏輯 // } /// <summary> /// 共享資料夾根路徑 /// </summary> private static readonly string RootPath = ConfigurationManager.AppSettings["RootPath"]; /// <summary> /// 連線共享資料夾的賬號 /// </summary> private static readonly string User = ConfigurationManager.AppSettings["User"]; /// <summary> /// 連線共享資料夾的密碼 /// </summary> private static readonly string Password = ConfigurationManager.AppSettings["Password"]; /// <summary> /// 連線共享資料夾,連線上後可以像操作本地磁碟的方式操作資料夾和檔案 /// 該方法使用配置檔案中的資訊連線共享資料夾 /// </summary> /// <returns></returns> public static bool Connect() { return Connect(RootPath, User, Password); } /// <summary> /// 連線共享資料夾,連線上後可以像操作本地磁碟的方式操作資料夾和檔案 /// </summary> /// <param name="path">共享資料夾路徑</param> /// <param name="userName">使用者名稱</param> /// <param name="passWord">密碼</param> /// <returns>連線成功返回true,否則返回false</returns> public static bool Connect(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; } /// <summary> /// 相對共享資料夾根路徑的路徑 /// </summary> /// <param name="path"></param> /// <returns></returns> public static string GetPath(string path) { if (path.StartsWith("\\")) { path = path.Substring(1); } return Path.Combine(RootPath, path); } }