c# 访问共享文件

时间:2023-03-09 04:07:42
c# 访问共享文件
 #region 连接共享文件夹
/// <summary>
/// 连接共享文件夹
/// </summary>
public bool ConnectToSharedFolder(string filename, string Name, string Pwd)
{
try
{
bool status = false;
int ljcs = ;
do
{
status = connectState(filename, Name, Pwd);
ljcs++;
if (ljcs >= )
{
break;
}
}
while (!status); if (!status)
MessageBox.Show("连接远程电脑" + filename + "失败,请检查名称是否正确");
return status;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return false;
}
}
private bool connectState(string path, string userName, string passWord)
{
bool Flag = false;
string dosLine = string.Empty;
System.Diagnostics.Process proc = new System.Diagnostics.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();
if (string.IsNullOrWhiteSpace(userName) || string.IsNullOrWhiteSpace(passWord))
dosLine = "net use " + path + " "; // + passWord + " /user:" + userName;
else
dosLine = "net use " + path + " " + passWord + " /user:" + userName;
proc.StandardInput.WriteLine(dosLine);
proc.StandardInput.WriteLine("exit");
while (!proc.HasExited)
{
proc.WaitForExit();
}
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;
}
#endregion

用法:

ConnectToSharedFolder(filename, un, pw);
//filename:服务区路径,例如:\\Xb-201812262150
//un:账号,pw:密码