■No34418に返信(susuさんの記事) > C#でフォルダ内のファイル容量(サブフォルダ含め)を取得したいと思いますが Size プロパティで返される値は、必ずしも実際のディスク使用量とは 一致していない点に御注意ください。 (単にファイルサイズの論理合計を返しているのだと思います) https://www.haruru29.net/blog/storage-allocation-unit-size/ ■No34421に返信(susuさんの記事) >>> long size = -1; > 念のためlong型をdouble型に変更しようと思います。 FileSystemObject ライブラリにおいては、 Folder オブジェクトの Size プロパティが、 2 GiB を境に戻り値のデータ型が変わるようです。 2147483647 以下の場合、int 型(C#) / Long 型(VBA)の値を返し、 2147483648 以上の場合、double 型(C#) / Double 型(VBA) の値を返しました。 参考までに、整数値を誤差無く保持するために使用できる C# の数値型と、それぞれの上限値を記しておきます。 1:decimal 型なら『(2 の 96乗) - 1』バイトまで (約 65536 YiB ) 2: ulong 型なら『(2 の 64乗) - 1』バイトまで(約 16 EiB) 3: long 型なら『(2 の 63乗) - 1』バイトまで(約 8 EiB) 4: double 型なら『(2 の 53乗) - 1』バイトまで(約 8 PiB) 5: uint 型なら『(2 の 32乗) - 1』バイトまで(約 4 GiB) 6: int 型なら『(2 の 31乗) - 1』バイトまで(約 2 GiB) 7: float 型なら『(2 の 24乗) - 1』バイトまで(約 16 MiB) ---- 1:decimal 型[128bit] → 79,228,162,514,264,337,593,543,950,335 2: ulong 型 [64bit] → 18,446,744,073,709,551,615 3: long 型 [64bit] → 9,223,372,036,854,775,807 4: double 型 [64bit] → 9,007,199,254,740,991 5: uint 型 [32bit] → 4,294,967,295 6: int 型 [32bit] → 2,147,483,647 7: float 型 [32bit] → 16,777,216