天天看点

C# 获取磁盘空间大小的方法

方法一:利用System.IO.DriveInfo.GetDrives方法来获取

<code>///  </code>

<code>        </code><code>/// 获取指定驱动器的空间总大小(单位为B)</code>

<code>        </code><code>///  </code>

<code>        </code><code>///  只需输入代表驱动器的字母即可 (大写)</code>

<code>        </code><code>///   </code>

<code>        </code><code>public</code> <code>static</code> <code>long</code> <code>GetHardDiskSpace(</code><code>string</code> <code>str_HardDiskName)</code>

<code>        </code><code>{</code>

<code>            </code><code>long</code> <code>totalSize=</code><code>new</code> <code>long</code><code>();</code>

<code>            </code><code>str_HardDiskName=str_HardDiskName +</code><code>":\\"</code><code>;</code>

<code>            </code><code>System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives();</code>

<code>            </code><code>foreach</code> <code>(System.IO.DriveInfo drive</code><code>in</code> <code>drives)</code>

<code>            </code><code>{</code>

<code>                </code><code>if</code> <code>(drive.Name == str_HardDiskName)</code>

<code>                </code><code>{</code>

<code>                    </code><code>totalSize = drive.TotalSize / (1024 * 1024 * 1024);</code>

<code>                </code><code>}</code>

<code>            </code><code>}</code>

<code>            </code><code>return</code> <code>totalSize;</code>

<code>        </code><code>}</code>

<code>        </code><code>/// 获取指定驱动器的剩余空间总大小(单位为B)</code>

<code>        </code><code>///  只需输入代表驱动器的字母即可 </code>

<code>        </code><code>public</code> <code>static</code> <code>long</code> <code>GetHardDiskFreeSpace(</code><code>string</code> <code>str_HardDiskName)</code>

<code>            </code><code>long</code> <code>freeSpace =</code><code>new</code> <code>long</code><code>();</code>

<code>            </code><code>str_HardDiskName = str_HardDiskName +</code><code>":\\"</code><code>;</code>

<code>                    </code><code>freeSpace = drive.TotalFreeSpace / (1024 * 1024 * 1024);</code>

<code>            </code><code>return</code> <code>freeSpace;</code>

方法二:利用ManagementClass("Win32_LogicalDisk")来获取

<code>List&lt;Dictionary&lt;</code><code>string</code><code>,</code><code>string</code><code>&gt;&gt; diskInfoDic =</code><code>new</code> <code>List&lt;Dictionary&lt;</code><code>string</code><code>,</code><code>string</code><code>&gt;&gt;();</code>

<code>ManagementClass diskClass =</code><code>new</code> <code>ManagementClass(</code><code>"Win32_LogicalDisk"</code><code>);</code>

<code>            </code><code>ManagementObjectCollection disks = diskClass.GetInstances();</code>

<code>            </code><code>foreach</code><code>(ManagementObject disk</code><code>in</code> <code>disks)</code>

<code>                </code><code>Dictionary&lt;</code><code>string</code><code>,</code><code>string</code><code>&gt; diskInfo =</code><code>new</code> <code>Dictionary&lt;</code><code>string</code><code>,</code><code>string</code><code>&gt;();</code>

<code>                </code><code>try</code>

<code>                    </code><code>// 磁盘名称</code>

<code>                    </code><code>diskInfo[</code><code>"Name"</code><code>] =disk[</code><code>"Name"</code><code>].ToString();</code>

<code>                    </code><code>// 磁盘描述</code>

<code>                    </code><code>diskInfo[</code><code>"Description"</code><code>]=disk[</code><code>"Description"</code><code>].ToString();</code>

<code>                    </code><code>// 磁盘总容量,可用空间,已用空间</code>

<code>                    </code><code>if</code> <code>(System.Convert.ToInt64(disk[</code><code>"Size"</code><code>]) &gt; 0)</code>

<code>                    </code><code>{</code>

<code>                        </code><code>long</code> <code>totalSpace = System.Convert.ToInt64(disk[</code><code>"Size"</code><code>]) / MB;</code>

<code>                        </code><code>long</code> <code>freeSpace = System.Convert.ToInt64(disk[</code><code>"FreeSpace"</code><code>]) / MB;</code>

<code>                        </code><code>long</code> <code>usedSpace = totalSpace - freeSpace;</code>

<code>                                    </code><code>diskInfo[</code><code>"totalSpace"</code><code>]=totalSpace.ToString();</code>

<code>                        </code><code>diskInfo[</code><code>"usedSpace"</code><code>]=usedSpace.ToString();</code>

<code>                        </code><code>diskInfo[</code><code>"freeSpace"</code><code>]=freeSpace.ToString();</code>

<code>                    </code><code>}</code>

<code>                    </code><code>diskInfoDic.Add(diskInfo);</code>

<code>                </code><code>catch</code><code>(Exception ex)</code>

<code>                    </code><code>Throw ex;</code>

<code>&lt;strong&gt;&lt;br&gt;&lt;/strong&gt;</code>

本文转自 梦在旅途 博客园博客,原文链接:http://www.cnblogs.com/zuowj/p/4173457.html  ,如需转载请自行联系原作者