アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

よろしくお願いいたします。

A 回答 (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";
    • good
    • 0
この回答へのお礼

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

どうもありがとうございました。

お礼日時:2005/11/17 11:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!