
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、使用c+對磁盤進行檢測,獲取磁盤相應的信息tern "c" _decpec(dll)int getlogicdiskinfo() int dtype; int si = 0; bool relt; unsign _int64 i64freebytestocaller; unsigned _int64 i64totalbytes; unsigned _int64 i64freebytes; float totalsize;/總空間 float usablesize;/可用空間 int dslength = getlogicaldrivesings(0,null);/通過該函數
2、獵取全部驅動器字符串信息長度 cout "長度為:" dslength endl; ofstream in;/向文件寫內容 in.open("d:diskinfo.txt",ios:tru);/ios:trunc表示在打開文件前將文件清空,因為是寫入操作,當文件不存在則創建 char* dstr = new chardslength; getlogicaldrivestrings(dslength,(lptstr)dstr); for(int i=0;i dslength/4;+i) char dir3 = dstrsi,':','
3、;' /cout "磁盤名稱為:" dir0 dir1 dir2 endl; in "磁盤名稱為:" dir0 dir1 dir2 "n" char str3 = 0,0,0; str0 = dir0; str1 = dir1; string dirname = str; dtype = getdrivetype(lptstr)dstr+i*4);/通過該函數獵取磁盤的類型 string drivertype; if(dtype = drive_fixed) drivertype = "本地磁盤" /cou
4、t drivertype endl; in "磁盤類型為:" drivertype "n" else if(dtype = drive_cdrom) drivertype = "光驅" /cout drivertype endl; in "磁盤類型為:" drivertype "n" else if(dtype = drive_removable) drivertype = "可移動磁盤" /cout drivertype endl; in "磁盤類型為:"
5、; drivertype "n" else if(dtype = drive_remote) drivertype = "網絡磁盤" /cout drivertype endl; in "磁盤類型為:" drivertype "n" else if(dtype = drive_ramdisk) drivertype = "虛擬ram磁盤" /cout drivertype endl; in "磁盤類型為:" drivertype "n" else if(d
6、type = drive_unknown) drivertype = "未知設備" /cout drivertype endl; in "磁盤類型為:" drivertype "n" if(dirname = "c:")/當磁盤為c盤時 result = getdiskfreespaceex(_t("c:"),(pularge_integer) i64freebytestocaller,(pularge_integer) i64totalbytes,(pularge_integer) i64fr
7、eebytes);/獵取磁盤的空間狀態 if(result) totalsize = (float)i64totalbytes/1024/1024/1024; usablesize = (float)i64freebytestocaller/1024/1024/1024; /cout "總空間為:" totalsize "gb" endl; /cout "可用空間為:" usablesize "gb" endl; /cout "=" endl; in "總空間為:" tota
8、lsize "gb" "n" in "可用空間為:" usablesize "gb" "n" in "=" "n" else /cout "未檢測到磁盤設備" endl; in "未檢測到磁盤設備" "n" else if(dirname = "d:")/當磁盤為d盤時 result = getdiskfreespaceex(_t("d:"),(pularg
9、e_integer) i64freebytestocaller,(pularge_integer) i64totalbytes,(pularge_integer) i64freebytes);/獵取磁盤的空間狀態 if(result) totalsize = (float)i64totalbytes/1024/1024/1024; usablesize = (float)i64freebytestocaller/1024/1024/1024; /cout "總空間為:" totalsize "gb" endl; /cout "可用空間為:&qu
10、ot; usablesize "gb" endl; /cout "=" endl; in "總空間為:" totalsize "gb" "n" in "可用空間為:" usablesize "gb" "n" in "=" "n" else /cout "未檢測到磁盤設備" endl; in "未檢測到磁盤設備" "n" else if(d
11、irname = "e:")/當磁盤為e盤時 result = getdiskfreespaceex(_t("e:"),(pularge_integer) i64freebytestocaller,(pularge_integer) i64totalbytes,(pularge_integer) i64freebytes);/獵取磁盤的空間狀態 if(result) totalsize = (float)i64totalbytes/1024/1024/1024; usablesize = (float)i64freebytestocaller/1024/
12、1024/1024; /cout "總空間為:" totalsize "gb" endl; /cout "可用空間為:" usablesize "gb" endl; /cout "=" endl; in "總空間為:" totalsize "gb" "n" in "可用空間為:" usablesize "gb" "n" in "=" "n"
13、; else /cout "未檢測到磁盤設備" endl; in "未檢測到磁盤設備" "n" else if(dirname = "f:")/當磁盤為f盤時 result = getdiskfreespaceex(_t("f:"),(pularge_integer) i64freebytestocaller,(pularge_integer) i64totalbytes,(pularge_integer) i64freebytes);/獵取磁盤的空間狀態 if(result) totalsiz
14、e = (float)i64totalbytes/1024/1024/1024; usablesize = (float)i64freebytestocaller/1024/1024/1024; /cout "總空間為:" totalsize "gb" endl; /cout "可用空間為:" usablesize "gb" endl; /cout "=" endl; in "總空間為:" totalsize "gb" "n" in &
15、quot;可用空間為:" usablesize "gb" "n" in "=" "n" else /cout "未檢測到磁盤設備" endl; in "未檢測到磁盤設備" "n" else if(dirname = "g:")/當磁盤為e盤時 result = getdiskfreespaceex(_t("g:"),(pularge_integer) i64freebytestocaller,(pularg
16、e_integer) i64totalbytes,(pularge_integer) i64freebytes);/獵取磁盤的空間狀態 if(result) totalsize = (float)i64totalbytes/1024/1024/1024; usablesize = (float)i64freebytestocaller/1024/1024/1024; /cout "總空間為:" totalsize "gb" endl; /cout "可用空間為:" usablesize "gb" endl; /co
17、ut "=" endl; in "總空間為:" totalsize "gb" "n" in "可用空間為:" usablesize "gb" "n" in "=" "n" else /cout "未檢測到磁盤設備" endl; in "未檢測到磁盤設備" "n" si+=8; in.close();/關閉文件 if(null != dtype) return
18、 dtype; else return -1; 該代碼主要用來獵取磁盤的盤符、磁盤的類型、磁盤的總空間大小以及磁盤的可用空間大小。 public ic map string, returnpo getdiscinfo() string dirname = "d:disk" string name = "info.txt" string disknamestr = "磁盤名稱" string disktypestr = "磁盤類型" string totalsizestr = "總空間" stri
19、ng usablesizestr = "可用空間" string diskname = null; string disktype = null; float totalsize = 0; float usablesize = 0; map string, returnpo map = new hashmap string, returnpo returnpo returnpo = new returnpo(); list usbpo list = new arraylist usbpo usbpo usbpo = null; jnative jnative = null;
20、 try jnative = new jnative("pcsuite", "getlogicdiskinfo");/ 加載pcsuite.dll文件 jnative.retval(type.int); / jnative.invoke(); file file = new file(dirname + filename);/ 實例化文件對象,讀取一個放置于本地磁盤中存放磁盤信息的文件 if (file.exists() bufferedreader br = new bufferedreader(new filereader(file); string
21、 line = null; int count = 0; int number = 0; for (int i = 0; i = count; i+) while (line = br.readline() != null) if (number % 5 = 0) usbpo = new usbpo();/ 實例化磁盤對象,用來存放磁盤信息 if (!"=" .equals(line) if (line.contains(disknamestr) diskname = line .substring(line.indexof(":") + 1);/ 獵取
22、盤符名稱 usbpo.setname(diskname);/ 設置盤符名稱 number+; else if (line.contains(disktypestr) disktype = line .substring(line.indexof(":") + 1);/ 獵取磁盤類型 if (disktype.equals(localdiscname)/ 當磁盤類型為本地磁盤時 usbpo.setflag(0);/ 當磁盤類型為本地磁盤時,設置為0 number+; else if (disktype.equals(movediscname)/ 當磁盤類型為可移動磁盤時 us
23、bpo.setflag(1);/ 當磁盤類型為可移動磁盤時,設置為1 number+; else if (line.contains(totalsizestr) totalsize = float.parsefloat(line.substring( line.indexof(":") + 1, line .indexof("gb");/ 獵取磁盤的總空間 usbpo.settotalsize(totalsize);/ 設置磁盤的總空間 number+; else if (line.contains(usablesizestr) usablesize =
24、 float.parsefloat(line.substring( line.indexof(":") + 1, line .indexof("gb");/ 獵取磁盤的可用空間 usbpo.setusablesize(usablesize);/ 設置磁盤的可用空間 number+; if (null != usbpo null != usbpo.getname() !"".equals(usbpo.getname() usbpo.gettotalsize() 0 usbpo.getusablesize() 0) list.a(usbp
25、o);/ 將磁盤信息添加一個列表中 else count+; number+; system.out.print("count is:" + count); returnpo.setexcept(null); returnpo.setresultflag(true); returnpo.setresultinfo(list); returnpo.setmethodid(invokemethod.methodid1); map.put(socketserver.resultinfo, returnpo); else logger.error("not ing this file"); ch (nativeexception e) e.printstacktrace(); returnpo.setexcept(e); returnpo.setresultflag(false); r
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護理物資管理2025年度工作方案范文
- 2024-2025學年高一語文名師輔導計劃
- 房地產業農民工工資保障措施
- 施工電梯回頂技術規范措施
- 土建施工員安全檢查職責他
- 統編版高中語文教材教學反思心得體會
- 實驗室設備噪音控制措施
- 部編版小學五年級語文上冊第一單元難忘的一天作文范文
- 疾控中心新冠核酸檢測判讀及數據上報流程
- 小學語文教研活動組織計劃
- 刑法學(上冊)馬工程課件 第1章 刑法概說
- GB/T 9125.1-2020鋼制管法蘭連接用緊固件第1部分:PN系列
- GB/T 27770-2011病媒生物密度控制水平鼠類
- 2023年廣西賓陽縣昆侖投資集團有限公司招聘筆試題庫及答案解析
- 社區社群團長招募書經典案例干貨課件
- 12、施工現場“三級配電”配置規范-附電路圖
- 新人教版七年級上冊初中生物全冊課時練(課后作業設計)
- 智能制造MES項目實施方案(注塑行業MES方案建議書)
- 四年級奧數講義
- 江蘇省南京市2024屆高一數學下學期期末試題(含解析)
- 多旋翼無人機專業培訓教材ppt課件
評論
0/150
提交評論