Pdfをc#で作りたいPCのセットアップで使うセット

2017年05月24日

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


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

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

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

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

次に、検索したいフォルダですが、
他のサーバーで管理している共有フォルダを対象にします。
ただし、C$といった管理共有は除くようにします。

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

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

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

https://gist.github.com/223n/d97ebf3b4a9c7dee8fbc02cb3bc31545


C#でも階層が深い場合に十分程度かかってしまいました。
そこで、次にほかの言語で同じようなことをやっている人が
いないものか探してみました。


ということで、最初はPowerShellでどうにかできないか試行錯誤した結果です。
コード1の方は、どうも階層が深いと正しく計算できていない様子。
暇を見て直したいと思います。

https://gist.github.com/223n/81ad1547065a6144774793cedede4c38

Ref. (コード1) tech.guitarrapc.cóm - PowerShell で フォルダの容量一覧を取得したい


その次は、Goでもどうにかできないかと調べてみると、
どうやら次のコードでできるようです。
ただ、開発環境がおかしいのか、ちゃんと実行できていません...

https://gist.github.com/223n/55ae071918dbea96c65e9eed0b69856e

Ref. stack overflow - Golang: How to get directory total size?


次に、やっぱり高速処理と言ったらCやC++ダヨネー
というかれこれ数十年ほどご無沙汰だったC++を触りました。
ただ、アクセスまわりのエラー発生時に対応しきれていません。

https://gist.github.com/223n/467ce5f2aa19c7a954b10b61be1c2f65

Ref. stack overflow - How can I find the size of all files located inside a folder?


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

https://gist.github.com/223n/2955ca7bf96ac1a796f8f6ab3ed41396

Ref. stack overflow - Calculating a directory size using Python?


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



hi223n at 23:15│Comments(0)TrackBack(0)Developer | .NET

トラックバックURL

コメントする

このブログにコメントするにはログインが必要です。

Pdfをc#で作りたいPCのセットアップで使うセット