前提・実現したいこと
フォルダ内の容量を調べるプログラムを作っているのですが、foreach文で回しているときに
その進捗をプログレスバーで表示させようとして、countという変数を設けて
コードを組んでみたのですがエラーになってしまいます。
どのようなコードを組めばよいでしょうか?
ご教示お願いします。
該当のソースコード
C#
1 2 public static long GetDirectorySize(DirectoryInfo dirInfo, ProgressBar pb) 3 { 4 int dircount = dirInfo.GetDirectories().Length; 5 int filecount = dirInfo.GetFiles().Length; 6 int allcount = dircount + filecount; 7 pb.Minimum = 0; 8 pb.Maximum = allcount; 9 10 int count = 0; 11 long size = 0; 12 13 //フォルダ内の全ファイルの合計サイズを計算する。 14 foreach (FileInfo fi in dirInfo.GetFiles()) 15 { 16 size += fi.Length; 17 count++; 18 pb.Value = count; 19 } 20 21 //サブフォルダのサイズを合計していく。 22 foreach (DirectoryInfo di in dirInfo.GetDirectories()){ 23 size += GetDirectorySize(di, pb); 24 count++; 25 pb.Value = count; //ここでエラー。 26 } 27 //結果を返す 28 return size; 29 }
エラーメッセージ
System.ArgumentOutOfRangeException: ''5' の値は 'Value' に対して有効ではありません。'Value' は 'minimum' と 'maximum' の間でなければなりません。 パラメーター名:Value'
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/07/19 15:52