程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#如何獲取遠程磁盤上的剩余空間

C#如何獲取遠程磁盤上的剩余空間

編輯: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” 博客

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved