ページ

2012年5月13日日曜日

ファイルサイズを求める

Androidというより、Javaの話だけど。。。
指定ファイルのファイルサイズを求めるには・・・

    public static int getFileSize(File file) {

        // ファイル以外は0固定
        if (!file.isFile()) {
            return 0;
        }
        int size = 0;
        FileInputStream stream = null;
        try {
            stream = new FileInputStream(file);
            size = stream.available();
        } catch (IOException e) {
            Logger.error("io error.", e);
        } finally {
            if (stream != null) {
                try {
                    stream.close();
                } catch (IOException e) {
                }
            }
        }
        return size;
    }
ディレクトリの容量を求めるには・・・
考え方としては、指定ディレクトリ配下を再帰的に検索し、全ファイルのファイルサイズを足しこむ。
    public static int getDirSize(File dir) {

        if (!dir.isDirectory()) {
            return getFileSize(dir);
        }
        // 最終的なサイズ
        int totalSize = 0;
        // 一覧を取得
        File[] items = dir.listFiles();
        if (items == null) {
            return totalSize;
        }
        for (File item : items) {
            if (item.isDirectory()) {
                totalSize += getDirSize(item);
            } else {
                totalSize += getFileSize(item);
            }
        }
        return totalSize;
    }
上位ディレクトリで実行すると、時間が物凄くかかるので要注意!

以上。

0 件のコメント:

コメントを投稿