• ベストアンサー

コピー後の空き容量を調べたい

コピー後のディスクの空き容量をコピー前に調べられるソフトをVB2005において開発しています。 コピー後の空き容量を調べるには、クラスタサイズを取得しなければなら ない?と思い、Win32APIを調べてみたところ「GetDiskFreeSpace」というAPIを利用すると取得できそうでした。 が、よく調べてみると2GBより大きいボリュームに対してはつかえないことがわかり、現在ここで足踏みしております。 恐れ入りますが、FT32,NTFSフォーマットのコピー後の空き容量の求め方をご教示願えないでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • unamana19
  • ベストアンサー率62% (56/89)
回答No.2

>が、よく調べてみると2GBより大きいボリュームに対してはつかえないことがわかり、現在ここで足踏みしております。 って、Windows9X系の場合ではなかったかな? GetDiskFreeSpaceで取得できるか試してみてください。

ronaldo9
質問者

お礼

>って、Windows9X系の場合ではなかったかな? >GetDiskFreeSpaceで取得できるか試してみてください。 試してみました。 <System.Runtime.InteropServices.DllImport("kernel32.dll", _ CharSet:=System.Runtime.InteropServices.CharSet.Auto)> _ Public Shared Function GetDiskFreeSpace( _ ByVal lpRootPathName As String, _ ByRef lpSecctorsPerCluster As UInt32, _ ByRef lpBytesPerSector As UInt32, _ ByRef lpNumberOfFreeClusters As UInt32, _ ByRef lpTotalNumberOfClusters As UInt32) As _ <System.Runtime.InteropServices.MarshalAs( _ System.Runtime.InteropServices.UnmanagedType.Bool)> Boolean End Function 上記のAPIで試してみたところ、値は取得できました。 ただ気になるのがこの値の信頼性です。 これはFAT32やNTFSにかかわらず常に正常に作動するのでしょうか。 よろしくお願いします。

その他の回答 (1)

  • unamana19
  • ベストアンサー率62% (56/89)
回答No.1

GetDiskFreeSpaceEx関数では駄目でしたか?

ronaldo9
質問者

お礼

回答ありがとうございます。 GetDiskFreeSpaceExですと、現在の空き容量などは取得可能なのですが、 クラスタサイズが取得できないようです。 もし、この関数からクラスタサイズを取得できる方法などございましたら 教えてください。 よろしくお願いします。

関連するQ&A