C#如何获取远程磁盘上的剩余空间

简介:

获取远程计算机上磁盘的剩余空间,所要获取的远程计算机上的磁盘可能是共享的,也可能不是共享的。如果是共享的就好办多了,你可以不需要太多的权限就可以获取你想要的东西。

1                   ///   < summary > 
2                   ///   获得UNC路径所指向文件夹所在磁盘的的剩余空间大小----需要 
3                   ///   < /summary > 
4                   ///   参数为UNCPath和路径所在的磁盘 
5                   ///   < param  name = " UNCPath " > < /param > 
6                   ///   < returns > < /returns > 
7                   private   void   btGetRemoteFolderFreeSpace_Click ( object   sender,   EventArgs   e ) 
8                   { 
9                         
10                          string   ip   =   textBoxSrcPath . Text; 
11                          string   disksrc   =   textBoxDirPath . Text; 
12                          string   username   =   txtUsername . Text; 
13                          string   password   =   txtPassword . Text; 
14 
15                          long   freesize   =   0l; 
16                          long   gb   =   1024 * 1024 * 1024 ; 
17                          ConnectionOptions   connectionOptions = new   ConnectionOptions ( ) ; 
18                          connectionOptions . Username   =   username; 
19                          connectionOptions . Password   =   password; 
20                          connectionOptions . Timeout = new   TimeSpan ( 1 , 1 , 1 , 1 ) ; // 连接时间 
21 
22                   // ManagementScope   的服务器和命名空间。 
23                          string   path   =   string . Format ( " \\\\{0}\\root\\cimv2 " ,   ip ) ; 
24                          // 表示管理操作的范围(命名空间),使用指定选项初始化   ManagementScope   类的、表示指定范围路径的新实例。 
25                          ManagementScope   scope   =   new   ManagementScope ( path,   connectionOptions ) ; 
26                          scope . Connect ( ) ; 
27                          // 查询字符串,某磁盘上信息 
28                          string   strQuery = string . Format(   " select   *   from   Win32_LogicalDisk   where   deviceid='{0}' " ,disksrc ) ; 
29 
30                          ObjectQuery   query = new   ObjectQuery ( strQuery ) ; 
31                          // 查询ManagementObjectCollection返回结果集 
32                          ManagementObjectSearcher   searcher   =   new   ManagementObjectSearcher ( scope,   query ) ; 
33                          foreach   ( ManagementObject   m   in   searcher . Get ( ) ) 
34                          { 
35                                  if   ( m [ " Name " ] . ToString ( ) = = disksrc ) 
36                                  { // 通过m["属性名"] 
37                                          freesize   =   Convert . ToInt64 ( m [ " FreeSpace " ] ) / gb; 
38                                  } 
39                          } 
40                          MessageBox . Show ( " 磁盘 " + disksrc + " 的可用空间为 " + freesize + " GB " ) ; 
41 
42                  } 
43

其中textBoxSrcPath.Text是值远程计算机的Ip地址,当然了,你需要提供计算机的用户名和密码,如果该磁盘整个都共享,你甚至都不需要用户名和密码,上面的例子是磁盘的某个文件夹是共享 的,但是该磁盘不共享,如果该磁盘是共享的就可以跟据unc路径想获取本地磁盘剩余空间一样获取该共享磁盘的剩余空间了。




本文转自HDDevTeam 51CTO博客,原文链接:http://blog.51cto.com/hddev/629668,如需转载请自行联系原作者

 

相关文章
|
1月前
|
C# 开发工具 Windows
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
39 0
|
Web App开发 C#
C# .NET 根据Url链接保存Image图片到本地磁盘
原文:C# .NET 根据Url链接保存Image图片到本地磁盘 根据一个Image的Url链接可以在浏览器中显示一个图片,如果要通过代码将图片保存在本地磁盘可以通过以下方式: 1、首先获取图片的二进制数组。
2495 0
|
C#
C# 获取磁盘容量
原文:C# 获取磁盘容量 /// 获取指定驱动器的空间总大小(单位为B) /// /// 只需输入代表驱动器的字母即可 /// public static long GetHardDiskSpace(stri...
721 0
|
6月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
188 3
|
6月前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
196 3
|
5天前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
16 3
|
26天前
|
安全 C# 数据安全/隐私保护
实现C#编程文件夹加锁保护
【10月更文挑战第16天】本文介绍了两种用 C# 实现文件夹保护的方法:一是通过设置文件系统权限,阻止普通用户访问;二是使用加密技术,对文件夹中的文件进行加密,防止未授权访问。提供了示例代码和使用方法,适用于不同安全需求的场景。
|
2月前
|
API C#
C# 一分钟浅谈:文件系统编程
在软件开发中,文件系统操作至关重要。本文将带你快速掌握C#中文件系统编程的基础知识,涵盖基本概念、常见问题及解决方法。文章详细介绍了`System.IO`命名空间下的关键类库,并通过示例代码展示了路径处理、异常处理、并发访问等技巧,还提供了异步API和流压缩等高级技巧,帮助你写出更健壮的代码。
38 2