DLLを利用するとディスクの空き容量や全容量を得ることができるようです。
以下質問掲示板の過去ログより抜粋。
'サンプル1
//Windows95初期版では動かないかもしれません。
'ドライブ空き容量取得Ex
//参考URL
//http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_getdiskfreespaceex.htm
「KERNEL32.DLL」の、「DWORD GetDiskFreeSpaceExA(char*,char*,char*,char*)」を、
「?,?,?,?」の、「ドライブ空き容量取得Ex」として、DLLを利用
//lpRootPathName char* ディレクトリ名 "C:\"
//lpFreeBytesAvailable ULINT* 呼び出し側が利用できるバイト数
//lpTotalNumberOfBytes ULINT* ディスク全体のバイト数
//lpTotalNumberOfFreeBytes ULINT* ディスク全体の空きバイト数
フォルダ名=『C:\』
lp利用可能バイト数に、8バイトを、確保。
lp全バイト数に、8バイトを、確保。
lp全空きバイト数に、8バイトを、確保。
ドライブ空き容量取得Ex(フォルダ名,lp利用可能バイト数,lp全バイト数,lp全空きバイト数)。
lp利用可能バイト数の、1を、『DWORD』形式で、バイナリ取得して、利用可能バイト数Lに、入れる。
lp利用可能バイト数の、5を、『DWORD』形式で、バイナリ取得して、利用可能バイト数Hに、入れる。
lp全バイト数の、1を、『DWORD』形式で、バイナリ取得して、全バイト数Lに、入れる。
lp全バイト数の、5を、『DWORD』形式で、バイナリ取得して、全バイト数Hに、入れる。
lp全空きバイト数の、1を、『DWORD』形式で、バイナリ取得して、全空きバイト数Lに、入れる。
lp全空きバイト数の、5を、『DWORD』形式で、バイナリ取得して、全空きバイト数Hに、入れる。
利用可能KB数=SHL(利用可能バイト数H,22)+利用可能バイト数L/1024
全KB数=SHL(全バイト数H,22)+全バイト数L/1024
全空きKB数=SHL(全空きバイト数H,22)+全空きバイト数L/1024
利用可能KB数を、通貨形式に変換。
「フォルダ\"{フォルダ名}\"の 利用可能容量 ={それ}KB 」を、表示
全KB数を、通貨形式に変換。
「ドライブの全容量 ={それ} KB」を、表示
全空きKB数を、通貨形式に変換。
「ドライブの空き容量 ={それ} KB」を、表示
使用率=100-全空きKB数*100/全KB数
「使用率 = {使用率}%」を、表示
文字色は、赤色
「※1KB=2^10Bytes = 1024Bytesで計算」と、表示。
待機。
作成日 2003/07/11 作成時のひまわりバージョン 1.77