using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
namespace server
{
class Cmd
{
/// <summary>
/// /获取当前公享打开的文件表
/// </summary>
/// <returns>files</returns>
public string ListNetfile()
{
string files = null;
files = RunCmd("net file");
return files;
}
/// <summary>
/// /通过文件名来获取当前公享打开的文件表
/// </summary>
/// <returns>files</returns>
public ArrayList ListNetfile(String fileName)
{
Process proc = new Process();
//建立ArrayList对象
ArrayList listFiles = new ArrayList();
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
proc.StandardInput.WriteLine("net file|find /i \"G:\\TestProgram\\\"");
proc.StandardInput.WriteLine("exit");
while (!proc.StandardOutput.EndOfStream)
{
string reultstr = proc.StandardOutput.ReadLine();
if (reultstr.Contains(fileName))
{
listFiles.Add(reultstr);
}
}
return listFiles;
}
/// <summary>
/// 关闭打开的公享文件
/// </summary>
/// <param name="shareFileNum"></param>
/// <returns></returns>
public string CloseShareFile(String shareFileNum)
{
StringBuilder sb = new StringBuilder("net file ");
sb.Append(shareFileNum);
sb.Append(" ");
sb.Append("/close");
shareFileNum = sb.ToString();
string resultStr = RunCmd(shareFileNum);
return resultStr;
}
/// <summary>
/// 执行CMD语句
/// </summary>
/// <param name="cmd">要执行的CMD命令</param>
public string RunCmd(string cmd)
{
Process proc = new Process();
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.Start();
proc.StandardInput.WriteLine(cmd);
proc.StandardInput.WriteLine("exit");
string outStr = proc.StandardOutput.ReadToEnd();
proc.Close();
return outStr;
}
}
}