• 締切済み

WinAPI GetDiskFreeSpaceEx について

お世話になります。 既存のWinNTServerで動いていたPERLモジュールがあります。 その中にWinAPIのGetDiskFreeSpaceExを使用してドライブ空き容量を得ていたのですが、今回ServerがVersionUpし、WinServer2003になったところ、取得できなくなってしまいました。 確かにMSDNを見てもこの関数はMicrosoft Windows NT Server 4.0 Standard Editionまでとなっているように見えるのですが、ではWinServer2003ではどのようにしてドライブ空き容量を得ることができるのでしょうか? もしくは、記述方法を変えたらこの関数でも対応可能なのでしょうか? よろしくお願いいたします。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

期待されている回答とは違うかもしれないですが、 FSOオブジェクトを使うことで、そうしたOSの違いによるAPIの違いを吸収してくれます。 Win32::OLEモジュールを使って以下のようにドライブサイズ&空き容量を求めることができます。 #--------------------------------------------------------------- use Win32::OLE; my $fso = Win32::OLE->new('Scripting.FileSystemObject'); my $DiskC = $fso->GetDrive("C"); print $DiskC->FreeSpace . "/" . $DiskC->TotalSize . "\n";

cshoaucmoa
質問者

お礼

BLUEPIXYさん、レスありがとうございます。 perlでもFSOが使えるのですね。 その方向でも一度考えて見ます。 どうもありがとうございました。

関連するQ&A