该如何用c#操作硬盘
主要是调用cmd处理,话不多说,下图代码——注释很清楚的,界面还是一如既往的对不起观众。。
//针对磁盘格式
private void Form1_Load(object sender, EventArgs e)
{
//提示窗口
//MessageBox.Show("操作有风险,数据无价请谨慎操作","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Exclamation);
if (MessageBox.Show("操作有风险,数据无价请谨慎操作", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.No)
{
this.Close();
}
//WMI查询
ManagementObjectSearcher search = new ManagementObjectSearcher("select * from win32_logicaldisk");
ManagementObjectCollection collection = search.Get();//检索
foreach (ManagementObject disk in collection)
{
cboDrive.Items.Add(disk["Name"].ToString());//添加磁盘名称
cboDrive.SelectedIndex = 0;//设置选择项
}
this.btnTranslate.Enabled = false;
}
private void btnShare_Click(object sender, EventArgs e)
{
if (cmbShareDisk.Text == "C" || cmbShareDisk.Text == "D" || cmbShareDisk.Text == "E" || cmbShareDisk.Text == "F")
{
Process p = new Process(); //创建进程对象
string shareName = txtShareName.Text; //共享名
string sharePath = cmbShareDisk.Text;//共享路径
p.StartInfo.FileName = "cmd"; //启动进程名称
p.StartInfo.Arguments = " /c net share " + shareName + "=" + sharePath;//换行命令
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;//窗口状态为隐藏
p.StartInfo.CreateNoWindow = true;//启动进程不创建窗口
p.StartInfo.UseShellExecute = false;//从可执行文件创建进程
p.StartInfo.RedirectStandardOutput = true;//将输出写入流中
p.Start();//启动进程
p.WaitForExit();
MessageBox.Show("设置共享成功!");
}
else
{
MessageBox.Show("请选择磁盘号!");
}
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnCheak_Click(object sender, EventArgs e)
{
if (cboDrive.Text== "C" ||cboDrive.Text== "D" ||cboDrive.Text == "E" ||cboDrive.Text== "F"||cboDrive.Text=="G")
{
try
{
DriveInfo info = new DriveInfo(cboDrive.Text);//创建对象
//输出磁盘容量和可用空间
this.lblMessage.Text = string.Format("{0}盘的总容量为:{1}b,\n剩余空间大小为:{2}b,\n可用空间大小为:{3}b", cboDrive.Text, info.TotalSize, info.TotalFreeSpace, info.AvailableFreeSpace);
}
catch { this.lblMessage.Text ="请查看是否存在此磁盘"; }
}
else
{
this.lblMessage.Text = "请选择磁盘好!";
}
}
private void btnDiskCheak_Click(object sender, EventArgs e)
{
DriveInfo info = new DriveInfo(cmbDiskName.Text);//创建对象
try
{
txtFile.Text = info.DriveFormat.ToString();//显示磁盘格式
if (txtFile.Text == "NTFS")
{
this.btnTranslate.Enabled = false;//按钮不可用
}
if (txtFile.Text == "FAT32")
{
this.btnTranslate.Enabled = true;//按钮可用
}
}
catch { MessageBox.Show("请确认磁盘是否存在"); }
}
private void btnTranslate_Click(object sender, EventArgs e)
{
Process p = new Process();//创建进程对象
string drivename = cmbDiskName.Text;//盘符
p.StartInfo.FileName = "cmd";//启动进程名称
p.StartInfo.Arguments = "/c convert " +drivename+": /fs:ntfs";//执行命令
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;//窗口设置为隐藏
p.StartInfo.CreateNoWindow = true;//启动进程不创建窗口
p.StartInfo.UseShellExecute = false;//从可执行文件创建进程
p.StartInfo.RedirectStandardOutput = true;//将输出写入流中
p.Start();//启动进程
p.WaitForExit();
MessageBox.Show("磁盘格式转换成功");
}
看完代码有没有一些启发?当然大神路过就好!好了,就这样。
转载请注明本文地址: http://www.xiaopuee.name/net2.html | 小蒲ee博客