Размер каталога подрывной деятельности - PullRequest
0 голосов
/ 07 октября 2010

У меня есть проект, который принимает извлечение в каталоге в Subversion от sharpsvn. Я хочу сделать сейчас, чтобы показать процесс оформления заказа в индикаторе выполнения, но для этого мне нужно знать размер доски, какое свойство или решение библиотеки я бы возвратил размер каталога?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 08 октября 2010

TortoiseSVN делает что-то похожее с индикатором выполнения проверки, вы можете проверить его исходный код.

0 голосов
/ 08 октября 2010

Мне удалось получить размер каталога для загрузки в subversion с помощью извлечения, поэтому я получаю переменную "total_size" с общим размером загрузки. Теперь, чтобы отобразить процесс загрузки в прогресс-блоках, нужно захватить загруженные биты, сравнить их с итоговыми и назначить их в индикатор выполнения, но не как получить эти данные ... Кто-нибудь делал что-то подобное? Вы покажете мне это свойство и использовали код?

              //This collection will contain property collections for each node
              System.Collections.ObjectModel.Collection<SvnPropertyListEventArgs> proplist;

              //This is where we can specify arguments to svn proplist
              SvnPropertyListArgs args = new SvnPropertyListArgs();

              args.Depth = SvnDepth.Infinity;

              //This method is what executes svn proplist
              client.GetPropertyList(targetSource, args, out proplist);

              //Each SvnPropertyListEventArgs represents the prop. set for a node
              foreach (SvnPropertyListEventArgs node in proplist)
              {
                  //Each SvnPropertyValue represents a single name/value property pair
                  foreach (SvnPropertyValue propVal in node.Properties)
                  {
                      items.Items.Add(node.Path);
                  }
              }

              int total_items = items.Items.Count;
              long totalsize = 0;
              for (int i = 0; i < total_items; i++)
              {
                  client.GetInfo(new Uri(items.Items[i].ToString()), out info);
                  totalsize = totalsize + info.RepositorySize;

              }
              MessageBox.Show(string.Format("The total size of {0} is {1}", targetSource, totalsize));

Спасибо

...