VB2008でディスク容量の表示

タグの編集
投稿者 KEN  (小学生) 投稿日時 2009/8/11 23:07:06
Visual Basic2008でプログラムを作っています。
VB2008でHDDの合計容量などをLabelに表示することはできないのでしょうか?
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/8/12 00:04:00
空き領域は、DriveInfo クラスの AvailableFreeSpace プロパティで得られます。

たとえば C ドライブの合計容量であれば、このように書けます。
Dim c As New System.IO.DriveInfo("C")
MsgBox(c.AvailableFreeSpace)  '空き領域のうち、ユーザーが使用可能な領域 
MsgBox(c.TotalFreeSpace)       '空き領域の合計 
MsgBox(c.TotalSize)            'ディスクの総容量 



全ての HDD の合計を知りたい場合には、My.Computer.FileSystem.Drives を併用すると良いでしょう。
Dim total As Long
total = Aggregate drv In My.Computer.FileSystem.Drives _
        Where drv.DriveType = DriveType.Fixed _
        Into Sum(drv.AvailableFreeSpace)
MsgBox(total.ToString("#,0' Bytes'"))
投稿者 KEN  (小学生) 投稿日時 2009/8/12 03:46:10
ありがとうございます。
この通りにやればMsgboxに表示されたんですけど、Labelに表示することはできないでしょうか?
アホな自分は
label1.text =(c.AvailableFreeSpace)
label2.text =(c.TotalFreeSpace)       
label3.text =(c.TotalSize) 
と書いてしかられまくってしまいました.
下の方のコードにVB2010と書いてあるんですけど、もうVB2010はリリースされたんですか?
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/8/12 05:55:04
> と書いてしかられまくってしまいました.
あれ? 通常はそれで動くはずですよ。(Option Strict を意図的に On にしていない限りは)

「しかられた」というのは、エラーになってしまうという事でしょうか。
であれば、どのようなエラーになっているのかを記述してみてください。


> もうVB2010はリリースされたんですか?
製品版はまだリリースされていませんが、Beta1 が入手可能となっています。
http://www.microsoft.com/japan/msdn/vstudio/2010/


蛇足ですが、Windows 7 もダウンロード可能です。
http://www.microsoft.com/japan/windows/windows-7/default.aspx
http://www.microsoft.com/japan/msdn/vstudio/campaign/windows7.aspx
投稿者 KEN  (社会人) 投稿日時 2009/8/12 18:52:11
label1.text =(c.AvailableFreeSpace)
label2.text =(c.TotalFreeSpace)       
label3.text =(c.TotalSize) 
と書いたら、
(c. ... のcのところで(全て)名前 c は 宣言されていません となってしまいました。
投稿者 KEN  (小学生) 投稿日時 2009/8/12 19:04:35
すいません。
最初のDim .....("c")を書いてませんでした。
本当にすいませんでした。
投稿者 KEN  (小学生) 投稿日時 2009/8/12 20:50:33
Dim total As Long
total = Aggregate drv In My.Computer.FileSystem.Drives _
        Where drv.DriveType = DriveType.Fixed _
        Into Sum(drv.AvailableFreeSpace)
MsgBox(total.ToString("#,0' Bytes'"))
を教えていただきましたが、
DriveTipe は宣言されてないか、または現在のスコープ内に存在しません
とエラーが出てきました。
どう解決すればいいのですか?
投稿者 (削除されました)  () 投稿日時 2009/8/12 22:00:37
(削除されました)
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/8/12 22:02:58
> DriveTipe は宣言されてないか、または現在のスコープ内に存在しません
> とエラーが出てきました。

その『DriveTipe』という部分は、どこに書かれていますか?

今まで出てきたコードの中には、どこにも DriveTipe という文字列は含まれていませんよね。
投稿者 KEN  (小学生) 投稿日時 2009/8/13 00:44:49
全ての HDD の合計を知りたい場合には、My.Computer.FileSystem.Drives を併用すると良いでしょう。
Dim total As Long
total = Aggregate drv In My.Computer.FileSystem.Drives _
        Where drv.DriveType = DriveType.Fixed _
        Into Sum(drv.AvailableFreeSpace)
MsgBox(total.ToString("#,0' Bytes'"))
 
↑の五行目に書いてあります。
投稿者 KEN  (小学生) 投稿日時 2009/8/13 00:45:24
四行目でした.
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/8/13 02:07:12
> ↑の四行目に書いてあります。

どこでしょうか?

『DriveType』ならば見つかりましたが、エラー文にでたという
『DriveTipe』は見当たらないようですが…。


>> DriveTipe は宣言されてないか、または現在のスコープ内に存在しません
>> とエラーが出てきました。
コードの先頭に、
 Imports System.IO
を付け加えてみてください。