天天看點

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  ,如需轉載請自行聯系原作者