sigar/bindings/dotnet/examples/Df.cs

47 lines
1.3 KiB
C#
Raw Normal View History

2004-06-22 06:37:04 +08:00
using System;
using Hyperic.Sigar;
public class Df {
2004-09-18 06:58:50 +08:00
private static String FormatSize(ulong value) {
return Sigar.FormatSize(value * 1024);
}
2004-06-22 06:37:04 +08:00
public static void Main() {
Sigar sigar = new Sigar();
foreach (FileSystem fs in sigar.FileSystemList()) {
FileSystemUsage usage;
ulong used, avail, total, pct;
try {
usage = sigar.FileSystemUsage(fs.DirName);
used = usage.Total - usage.Free;
avail = usage.Avail;
total = usage.Total;
pct = (ulong)(usage.UsePercent * 100);
} catch (ApplicationException) {
used = avail = total = pct = 0;
continue;
}
string usePct;
if (pct == 0) {
usePct = "-";
}
else {
usePct = pct + "%";
}
System.Console.WriteLine(fs.DevName + "\t" +
2004-09-18 06:58:50 +08:00
FormatSize(total) + "\t" +
FormatSize(used) + "\t" +
FormatSize(avail) + "\t" +
2004-06-22 06:37:04 +08:00
usePct + "\t" +
fs.DirName + "\t" +
fs.SysTypeName + "/" + fs.TypeName);
}
}
}