1.之前有用过累加磁盘中文件,然后得到一个已使用的值
2.查看MSDN之后发现有一个DriveInfo类可以获得磁盘的详细信息,但是DriveInfo类只能显示有关当前系统中所有驱动器的信息,不能查看其他服务器磁盘使用情况,也不可能写一段程序放到各个机器上。
想通过一个程序,只需要配置监控磁盘的路径,就可以获得磁盘信息。各位有没有好的办法?
8 个解决方案
#2
用的时候右键你的项目,添加引用,在弹出来的选项卡选择.net,然后找到system.managment就行了
#3
非常感谢,麻烦再问一下System.Management.ManagementScope Ms = new ManagementScope (
"\\root\\cimv2" , Conn ) 是什么意思啊?在Windows中应该如何写呀?
#4
#5
[DllImport("kernel32.dll", SetLastError=true, CharSet=CharSet.Auto)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetDiskFreeSpaceEx(string lpDirectoryName,
out ulong lpFreeBytesAvailable,
out ulong lpTotalNumberOfBytes,
out ulong lpTotalNumberOfFreeBytes);
ulong FreeBytesAvailable;
ulong TotalNumberOfBytes;
ulong TotalNumberOfFreeBytes;
bool success = GetDiskFreeSpaceEx("C:\\", out FreeBytesAvailable, out TotalNumberOfBytes,
out TotalNumberOfFreeBytes);
if (!success)
throw new System.ComponentModel.Win32Exception();
Console.WriteLine("Free Bytes Available: {0,15:D}", FreeBytesAvailable);
Console.WriteLine("Total Number Of Bytes: {0,15:D}", TotalNumberOfBytes);
Console.WriteLine("Total Number Of FreeBytes: {0,15:D}", TotalNumberOfFreeBytes);
http://topic.csdn.net/u/20090809/08/e42bebe7-8dca-4fde-a8c7-bfc4b6e71ad8.html
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetDiskFreeSpaceEx(string lpDirectoryName,
out ulong lpFreeBytesAvailable,
out ulong lpTotalNumberOfBytes,
out ulong lpTotalNumberOfFreeBytes);
ulong FreeBytesAvailable;
ulong TotalNumberOfBytes;
ulong TotalNumberOfFreeBytes;
bool success = GetDiskFreeSpaceEx("C:\\", out FreeBytesAvailable, out TotalNumberOfBytes,
out TotalNumberOfFreeBytes);
if (!success)
throw new System.ComponentModel.Win32Exception();
Console.WriteLine("Free Bytes Available: {0,15:D}", FreeBytesAvailable);
Console.WriteLine("Total Number Of Bytes: {0,15:D}", TotalNumberOfBytes);
Console.WriteLine("Total Number Of FreeBytes: {0,15:D}", TotalNumberOfFreeBytes);
http://topic.csdn.net/u/20090809/08/e42bebe7-8dca-4fde-a8c7-bfc4b6e71ad8.html
#6
2 楼正解,感谢yalan帮忙。问题已经搞定。
#7
yalan,我想问您一下。为什么我检查网络磁盘(DriveType = 4)的时候有的显示不出来,显示出来的有的拿不到大小。看到请回复一下
#8
DriveType 枚举
定义驱动器类型常数,包括 CDRom、Fixed、Network、NoRootDirectory、Ram、Removable 和 Unknown。
成员名称 说明
Unknown 驱动器类型未知。
NoRootDirectory 此驱动器没有根目录。
Removable 此驱动器是一个可移动存储设备,如软盘驱动器或 USB 闪存驱动器。
Fixed 此驱动器是一个固定磁盘。
Network 此驱动器是一个网络驱动器。
CDRom 此驱动器是一个光盘设备,如 CD 或 DVD-ROM。
Ram 此驱动器是一个 RAM 磁盘。
以上摘自MSDN
如果显示不出来大小,是否有权限?DriveType=4说明该驱动器是网络驱动器,是否有权限获取器大小?
定义驱动器类型常数,包括 CDRom、Fixed、Network、NoRootDirectory、Ram、Removable 和 Unknown。
成员名称 说明
Unknown 驱动器类型未知。
NoRootDirectory 此驱动器没有根目录。
Removable 此驱动器是一个可移动存储设备,如软盘驱动器或 USB 闪存驱动器。
Fixed 此驱动器是一个固定磁盘。
Network 此驱动器是一个网络驱动器。
CDRom 此驱动器是一个光盘设备,如 CD 或 DVD-ROM。
Ram 此驱动器是一个 RAM 磁盘。
以上摘自MSDN
如果显示不出来大小,是否有权限?DriveType=4说明该驱动器是网络驱动器,是否有权限获取器大小?
#1
#2
用的时候右键你的项目,添加引用,在弹出来的选项卡选择.net,然后找到system.managment就行了
#3
非常感谢,麻烦再问一下System.Management.ManagementScope Ms = new ManagementScope (
"\\root\\cimv2" , Conn ) 是什么意思啊?在Windows中应该如何写呀?
#4
http://msdn.microsoft.com/zh-cn/library/system.management.managementscope.aspx?TPSecNotice
http://blog.csdn.net/nosave/archive/2008/03/20/2199219.aspx
http://blog.csdn.net/nosave/archive/2008/03/20/2199219.aspx
#5
[DllImport("kernel32.dll", SetLastError=true, CharSet=CharSet.Auto)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetDiskFreeSpaceEx(string lpDirectoryName,
out ulong lpFreeBytesAvailable,
out ulong lpTotalNumberOfBytes,
out ulong lpTotalNumberOfFreeBytes);
ulong FreeBytesAvailable;
ulong TotalNumberOfBytes;
ulong TotalNumberOfFreeBytes;
bool success = GetDiskFreeSpaceEx("C:\\", out FreeBytesAvailable, out TotalNumberOfBytes,
out TotalNumberOfFreeBytes);
if (!success)
throw new System.ComponentModel.Win32Exception();
Console.WriteLine("Free Bytes Available: {0,15:D}", FreeBytesAvailable);
Console.WriteLine("Total Number Of Bytes: {0,15:D}", TotalNumberOfBytes);
Console.WriteLine("Total Number Of FreeBytes: {0,15:D}", TotalNumberOfFreeBytes);
http://topic.csdn.net/u/20090809/08/e42bebe7-8dca-4fde-a8c7-bfc4b6e71ad8.html
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetDiskFreeSpaceEx(string lpDirectoryName,
out ulong lpFreeBytesAvailable,
out ulong lpTotalNumberOfBytes,
out ulong lpTotalNumberOfFreeBytes);
ulong FreeBytesAvailable;
ulong TotalNumberOfBytes;
ulong TotalNumberOfFreeBytes;
bool success = GetDiskFreeSpaceEx("C:\\", out FreeBytesAvailable, out TotalNumberOfBytes,
out TotalNumberOfFreeBytes);
if (!success)
throw new System.ComponentModel.Win32Exception();
Console.WriteLine("Free Bytes Available: {0,15:D}", FreeBytesAvailable);
Console.WriteLine("Total Number Of Bytes: {0,15:D}", TotalNumberOfBytes);
Console.WriteLine("Total Number Of FreeBytes: {0,15:D}", TotalNumberOfFreeBytes);
http://topic.csdn.net/u/20090809/08/e42bebe7-8dca-4fde-a8c7-bfc4b6e71ad8.html
#6
2 楼正解,感谢yalan帮忙。问题已经搞定。
#7
yalan,我想问您一下。为什么我检查网络磁盘(DriveType = 4)的时候有的显示不出来,显示出来的有的拿不到大小。看到请回复一下
#8
DriveType 枚举
定义驱动器类型常数,包括 CDRom、Fixed、Network、NoRootDirectory、Ram、Removable 和 Unknown。
成员名称 说明
Unknown 驱动器类型未知。
NoRootDirectory 此驱动器没有根目录。
Removable 此驱动器是一个可移动存储设备,如软盘驱动器或 USB 闪存驱动器。
Fixed 此驱动器是一个固定磁盘。
Network 此驱动器是一个网络驱动器。
CDRom 此驱动器是一个光盘设备,如 CD 或 DVD-ROM。
Ram 此驱动器是一个 RAM 磁盘。
以上摘自MSDN
如果显示不出来大小,是否有权限?DriveType=4说明该驱动器是网络驱动器,是否有权限获取器大小?
定义驱动器类型常数,包括 CDRom、Fixed、Network、NoRootDirectory、Ram、Removable 和 Unknown。
成员名称 说明
Unknown 驱动器类型未知。
NoRootDirectory 此驱动器没有根目录。
Removable 此驱动器是一个可移动存储设备,如软盘驱动器或 USB 闪存驱动器。
Fixed 此驱动器是一个固定磁盘。
Network 此驱动器是一个网络驱动器。
CDRom 此驱动器是一个光盘设备,如 CD 或 DVD-ROM。
Ram 此驱动器是一个 RAM 磁盘。
以上摘自MSDN
如果显示不出来大小,是否有权限?DriveType=4说明该驱动器是网络驱动器,是否有权限获取器大小?