---
title: "フォルダの合計サイズを知りたい | C#もぐもぐ"
description: "C#と他の言語で、フォルダ内のサイズを調べられないか調査したときのメモです"
url: "https://blog.223n.tech/posts/40/"
---

# フォルダの合計サイズを知りたい

2017年5月24日

[C#](https://blog.223n.tech/tags/C%23/) [Memo](https://blog.223n.tech/tags/Memo/) [Program](https://blog.223n.tech/tags/Program/)

フォルダーの中にあるファイルの合計サイズを知りたい。

ということで、いろいろと考えた件のメモです。

まず、ルールを最初にまとめます。

アクセス権の関係で例外エラーが発生することが考えられるため、
エラーとなってしまうファイルやディレクトリについては、
0バイトとしてカウントすることにしました。

次に、検索したいフォルダーですが、
他のサーバーで管理している共有フォルダーを対象にします。

ただし、C$といった管理共有は除くようにします。

さて、単純にフォルダーを選択して右クリックのプロパティで
サイズが…わからないんですね;

さて、どうしようかなと思ったのですが、
以外にもWindowsAPIとかで、そのような機能は見当たりませんでした。

ということで、C#で共有フォルダーを探して各共有フォルダー内のサイズを
すべて足し算するプログラムを作りました。

[https://gist.github.com/223n/d97ebf3b4a9c7dee8fbc02cb3bc31545](https://gist.github.com/223n/d97ebf3b4a9c7dee8fbc02cb3bc31545 "C#")

C#でも階層が深い場合に十分程度かかってしまいました。

そこで、次にほかの言語で同じようなことをやっている人が
いないものか探してみました。

ということで、最初はPowerShellでどうにかできないか試行錯誤した結果です。

コード1の方は、どうも階層が深いと正しく計算できていない様子。

暇を見て直したいと思います。

[https://gist.github.com/223n/81ad1547065a6144774793cedede4c38](https://gist.github.com/223n/81ad1547065a6144774793cedede4c38 "PowerShell")

Ref. (コード1) [tech.guitarrapc.cóm - PowerShell で フォルダの容量一覧を取得したい](http://tech.guitarrapc.com/entry/2013/09/26/071905)

その次は、Goでもどうにかできないかと調べてみると、
どうやら次のコードでできるようです。

ただ、開発環境がおかしいのか、ちゃんと実行できていません…

[https://gist.github.com/223n/55ae071918dbea96c65e9eed0b69856e](https://gist.github.com/223n/55ae071918dbea96c65e9eed0b69856e "Go")

Ref. [stack overflow - Golang: How to get directory total size?](https://stackoverflow.com/questions/32482673/golang-how-to-get-directory-total-size)

次に、やっぱり高速処理と言ったらCやC++ダヨネー

というかれこれ数十年ほどご無沙汰だったC++を触りました。

ただ、アクセスまわりのエラー発生時に対応しきれていません。

[https://gist.github.com/223n/467ce5f2aa19c7a954b10b61be1c2f65](https://gist.github.com/223n/467ce5f2aa19c7a954b10b61be1c2f65 "C++")

Ref. [stack overflow - How can I find the size of all files located inside a folder?](https://stackoverflow.com/questions/15495756/how-can-i-find-the-size-of-all-files-located-inside-a-folder)

最後に、Python3も試してみました。

[https://gist.github.com/223n/2955ca7bf96ac1a796f8f6ab3ed41396](https://gist.github.com/223n/2955ca7bf96ac1a796f8f6ab3ed41396 "Python3")

Ref. [stack overflow - Calculating a directory size using Python?](https://stackoverflow.com/questions/1392413/calculating-a-directory-size-using-python)

もう少し、手軽に調べられる方法があればいいのですが…

[記事一覧に戻る](https://blog.223n.tech/posts/)
