SS02-Results
ファイル共有しているPCがある。
いろんな部署が共有フォルダを作っているのだが、どのくらい容量食ってるのか?
ショボいPCでディスク容量少ないけど、今空き容量どのくらいなのか?
ってのを監視しようとフリーウェアを探してみる。
けど、だいたいそのPCに行ってソフトを起動して確認するようなものばかり。
共有フォルダに自動で結果を出力してくれれば自分のPCから確認できるんだが。

で、結局自分でコードを書いちゃった。
機能としては、
指定したドライブの容量と空き容量を表示。
指定したフォルダの容量をリストで表示。(複数指定可)
結果はHTMLファイルでグラフ付きで出力。
と、シンプルなもの。

欲しい方はどうぞ。
ダウンロードはコチラ
Windows用です。VB2008で書いてます。たぶんVBランタイムがいるんじゃないかと。
適当にサクっと作ったのでエラー対策処理とかスカスカです。すみません。
 
■設定方法
FolderSize.exeと同じ場所にあるFolderSize.iniを編集する。

[common]
pc=PC01
↑ ここにPC名(表示に使用するだけ)。

[folder]
name=ドロップボックス<>ワンドライブ<>ワーク
↑ ここにフォルダ名(結果一覧表示に使用するだけ)区切り文字は『<>』で。
folder=D:\Dropbox<>D:\OneDrive<>D:\Work
↑ ここにサイズを知りたいフォルダのパス。区切り文字は『<>』で。
   nameとfolderが対になる
drive=D
↑ 容量と空き容量を調べたいドライブ名。

[result]
file=D:\results.html
↑ 出力結果ファイルのフルパス。

FolderSize.exeをタスクスケジューラで毎朝自動起動させるなどして実行する。

■サンプルコード
とりあえずフォルダ容量を取得する関数のサンプルです。
見よう見まねで書いてみたけど。
この関数に調べたいフォルダのパスをセットして呼んでください。
サイズがでかいと結構時間がかかります。

●呼び方
FolderSize = GetDirectorySize("D:\Dropbox")

●サイズを計算する関数
Public Function GetDirectorySize(ByVal FolderName As String) As Long
    Dim Folder As New IO.DirectoryInfo(FolderName)
    Dim oFolder As IO.DirectoryInfo
    Dim oFile As IO.FileInfo
    Dim TotalSize As Long

    If Folder.Exists = False Then
        Return -1
        Exit Function
    End If

    For Each oFile In Folder.GetFiles()
        TotalSize = TotalSize + oFile.Length
    Next

    For Each oFolder In Folder.GetDirectories()
        TotalSize = TotalSize + GetDirectorySize(oFolder.FullName)
    Next

    Return TotalSize

End Function

参考になれば幸いです。