關於>>得到磁碟的相關

來源:互聯網
上載者:User

得到磁碟資訊:

void enumStore()<br />{<br /> STOREINFO stinfo = {0};<br /> HANDLE hPart = INVALID_HANDLE_VALUE;<br /> HANDLE hstore;<br /> TCHAR szInfo[100] = _T("");</p><p> stinfo.cbSize = sizeof(STOREINFO);</p><p> hstore = FindFirstStore(&stinfo);<br /> if(hstore!=INVALID_HANDLE_VALUE)<br /> {<br /> do {<br /> RETAILMSG(1,(TEXT("Partion number:%ld /n"),stinfo.dwPartitionCount ));<br /> Size2String(stinfo.snNumSectors * stinfo.dwBytesPerSector,szInfo,100);<br /> RETAILMSG(1,(TEXT("enumPartion:%s szInfo=%s/n"),stinfo.szDeviceName,szInfo));<br /> Size2String(stinfo.dwBytesPerSector, szInfo, 100);<br /> RETAILMSG(1,(TEXT("enumPartion:%s dwBytesPerSector=%s/n"),stinfo.szDeviceName,szInfo));</p><p> enumPartion(stinfo.szDeviceName,"//Hard Disk2//");<br /> } while(FindNextStore(hstore, &stinfo));<br /> }<br /> FindCloseStore(hstore);<br />}<br />LONGLONG enumPartion(LPCTSTR deviceName,CString szPartionName )<br />{<br /> PARTINFO partInfo = {0};<br /> STOREINFO stinfo = {0};<br /> HANDLE hPart= INVALID_HANDLE_VALUE;<br /> HANDLE hstore=INVALID_HANDLE_VALUE;</p><p> TCHAR szInfo[100] = _T("");</p><p> stinfo.cbSize = sizeof(STOREINFO);<br /> partInfo.cbSize = sizeof(PARTINFO);</p><p> hstore = OpenStore(deviceName);</p><p> if(INVALID_HANDLE_VALUE!=hstore)<br /> {</p><p> if(GetStoreInfo(hstore,&stinfo)==FALSE) return 0;</p><p> hPart=FindFirstPartition(hstore, &partInfo);<br /> if(hPart==INVALID_HANDLE_VALUE)<br /> RETAILMSG(1,(TEXT("no find Partion info")));<br /> if(hPart!=INVALID_HANDLE_VALUE)<br /> {</p><p> do {<br /> RETAILMSG(1,(TEXT("enumPartion:%s /n"),partInfo.szVolumeName));<br /> if(szPartionName.Right(1).Compare(_T("//"))==0) szPartionName=szPartionName.Left(szPartionName.GetLength()-1);<br /> if(szPartionName.Compare(partInfo.szVolumeName)==0)<br /> {<br /> CloseHandle(hstore);<br /> FindClosePartition(hPart);<br /> return partInfo.snNumSectors*stinfo.dwBytesPerSector;<br /> }<br /> } while(FindNextPartition(hPart, &partInfo));<br /> }<br /> }<br /> CloseHandle(hstore);<br /> FindClosePartition(hPart);<br /> return 0L;</p><p>}<br />//<br />

 

---------------------------------------------------------------------------------------

得到磁碟空間:

LONGLONG GetDiskSpace(LPCWSTR disk)<br />{<br /> ULARGE_INTEGER lpuse;<br /> ULARGE_INTEGER lptotal;<br /> ULARGE_INTEGER lpfree;<br /> LONGLONG llsize;<br /> TCHAR szInfo[100] = _T("");</p><p> GetDiskFreeSpaceEx(disk,&lpuse,&lptotal,&lpfree);<br /> //RETAILMSG(1,(TEXT("disk:%s used:%ld free:%ld total:%ld/n"),disk,lpuse.QuadPart/1024/1024,lpfree.QuadPart/1024/1024,lptotal.QuadPart/1024/1024));</p><p> Size2String(lpuse.QuadPart, szInfo, 100);<br /> //RETAILMSG(1,(TEXT("lpuse.QuadPart=%s/n"),szInfo));<br /> llDiskFreeSize=lpuse.QuadPart;<br /> szDiskFreeSize.Format(_T("%s"),szInfo);<br /> //<br /> llDiskTotalSize=lptotal.QuadPart;<br /> Size2String(lptotal.QuadPart, szInfo, 100);<br /> szDiskTotalSize.Format(_T("%s"),szInfo);</p><p> //RETAILMSG(1,(TEXT("szDiskTotalSize=%s szDiskFreeSize=%s /n"),szDiskTotalSize,szDiskFreeSize ));</p><p> return (LONGLONG)lptotal.QuadPart;<br />}</p><p>// --------------------------------------------------------------------<br />BOOL Size2String(LONGLONG llBytes, LPTSTR pszSize, DWORD cLen)<br />// --------------------------------------------------------------------<br />{<br /> double bytes = (double)llBytes;<br /> DWORD cIter = 0;<br /> LPCTSTR pszUnits[] = { _T("B"), _T("K"), _T("M"), _T("G"), _T("T") };<br /> DWORD cUnits = sizeof(pszUnits) / sizeof(pszUnits[0]);</p><p> // move from bytes to kb, to mb, to gb and so on diving by 1024<br /> while(bytes >= 1024 && cIter < (cUnits-1))<br /> {<br /> bytes /= 1024;<br /> cIter++;<br /> }<br /> _sntprintf(pszSize, cLen, _T("%.0f%s"), bytes, pszUnits[cIter]);<br /> return TRUE;<br />}<br />

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.