![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
DoZENT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 2.6.2006 Репутация: нет Всего: 1 |
Как бы мне узнать размер заданной директории на C#? Тупо перебрать все вложенные файлы? Может функция какая есть...?
-------------------- Какая боль, какая боль, Internet Explorer 5.0... |
|||
|
||||
Pankon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 739 Регистрация: 2.6.2005 Репутация: 3 Всего: 5 |
|
|||
|
||||
DoZENT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 2.6.2006 Репутация: нет Всего: 1 |
Эта функция возвращает число файлов в заданной директории. А мне нужен ее размер.
-------------------- Какая боль, какая боль, Internet Explorer 5.0... |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 25 Всего: 173 |
Только надо учесть, что при большом количестве файлов будет создавать большой массив, занимая много памяти. Способов перебрать файлы поочерёдно без P/Invoke в .NET нет. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Void, а если рекурсию забомбить? Памяти меньше съест. Тем более я считал, что это стандартный подход
![]() DoZENT, в общем: нет такой стандартной функции ![]() |
|||
|
||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
В Mono сделано так (System.IsolatedStorage.IsolatedStorageInfo class)
|
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Exception, т.е. рекурсивно ;-)
|
|||
|
||||
Stepan_Lameroff |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 16.12.2006 Репутация: 9 Всего: 14 |
Всегда есть выбор
![]()
|
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 25 Всего: 173 |
Выбора нет. Если в директории плоско лежат миллион файлов, массив все равно создасться.
Аналога FindFirstFile/FindNextFile (opendir/readdir или ещё лучше ftw) нет. Но, впрочем, не суть важно ![]() ![]() Это сообщение отредактировал(а) Void - 21.6.2007, 13:37 -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
DoZENT |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 2.6.2006 Репутация: нет Всего: 1 |
Да нет, все-таки важно ![]() -------------------- Какая боль, какая боль, Internet Explorer 5.0... |
|||
|
||||
Stepan_Lameroff |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 16.12.2006 Репутация: 9 Всего: 14 |
Вот Вам Native решение:
Взято отсюда. У меня результаты тестов были такие:
Выбирать Вам ![]() |
||||
|
|||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Stepan_Lameroff, а память?
А
DoZENT, ИМХО, используй код Exception-а. Он проще. Хотя код Stepan_Lameroff-а (тот, который с очередью), мне очень понравился своей идеей избавления от рекурсии, но я бы его не использовал. Ибо нужна смекалка, чтобы в ним разобраться, а код Exception-а стандартный подход. |
|||
|
||||
Stepan_Lameroff |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 16.12.2006 Репутация: 9 Всего: 14 |
Памяти, естественно, managed method кушает поболее (массивы
![]() Да и процессор он нагружает больше.
Это сообщение отредактировал(а) Stepan_Lameroff - 22.6.2007, 11:19 |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
![]() Stepan_Lameroff, а что у тя за профайлер? Дай поиграться ![]() ![]() Добавлено через 4 минуты и 32 секунды Т.е. больше всего тянут операции ввода/вывода (что логично). А само вычисление на твоем компе происходит примерно одинаково. |
|||
|
||||
Stepan_Lameroff |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 16.12.2006 Репутация: 9 Всего: 14 |
||||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |