September 07, 2016

フォルダサイズ取得ツールを作ってみた

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

参考になれば幸いです。
 
 



    このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr Clip to Evernote

トラックバックURL

コメントする

名前
 
  絵文字
 
 
Counter
  • 今日:
  • 昨日:
  • 累計:

Counter

    Archives
    Categories
    記事検索
    Profile
    QR Code
    QRコード
    ギャラリー
    • BS4K対応DIGAを買ったらPayPay全額キャッシュバックに当選した
    • BS4K対応DIGAを買ったらPayPay全額キャッシュバックに当選した
    • PCを買い替えた
    • PCを買い替えた
    • AVレシーバーを買い替えた
    • AVレシーバーを買い替えた
    • Apple Watch Series4を買ってみた
    • Apple Watch Series4を買ってみた
    • 仕事中の間食はどうなのか
    • プロ野球のFAについて考える - 僕は賛成派
    • 祝 三連覇!!!
    • PC用の4Kモニターを買った
    • PC用の4Kモニターを買った
    • PC用の4Kモニターを買った
    • PC用の4Kモニターを買った
    GEMS RSS
    Recent Comments
    楽天
    楽天で探す
    楽天市場
    • ライブドアブログ