Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1

Как оптимизировать сбор длины пути всех файлов на ПК?

06.08.2014, 02:25. Показов 1722. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Появилась у меня мысль - проверить длину пути ко всем файлам на ПК ( по стандарту NTFS (255 символов ограничение)).
Задача проста и выполнима...Если бы не одно но -
Наткнувшись на пост от уважаемого UI...
Понял что у моего кода скорость работы - велика .
Вот и вопрос - как оптимизировать сбор длины пути всех файлов на ПК? (возможно не используя FindFirstFile?)
Хотелось бы совет от старших товарищей
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.08.2014, 02:25
Ответы с готовыми решениями:

Сбор информации со всех файлов в один
Добрый день! Есть слудующий код function out = All_Samples() i = 1; while(i < 21) if(i < 10) ...

Сбор файлов на всех накопителях и отправка через интернет
задача: собрать со всех накопителей (жесткий диск + флешки) на компе файлы формата .doc и .docx. и отправить их через интернет на...

Отказано в доступе по пути при перечислении всех файлов во всех папках на диске С
Доброго времени суток. Пробую перечислить все файлы во всех папках на диске С. Вот так: static void Main( string args ) ...

14
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
06.08.2014, 06:55
Цитата Сообщение от Ddv122 Посмотреть сообщение
скорость работы - велика
а надо еще больше?

Не по теме:

Цитата Сообщение от Ddv122 Посмотреть сообщение
Хотелось бы совет от старших товарищей
а сколько Вам лет? а то не пойму, могу Вам советовать или нет?)

0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
06.08.2014, 09:15
Ddv122, чисто ради хохмы, попробуйте стандартным виндовым поиском поискать какой-нибудь файл среди
Цитата Сообщение от Ddv122 Посмотреть сообщение
всех файлов на ПК
. или строку какую-нибудь во всех файлах. Сильно ваш код будет уступать ему? В процентном соотношении.
FindFirstFile это винапишная функция - вряд ли есть что-то быстрее.
Если только Убежденный вам посоветует какой-нибудь хитрый ход.

Не по теме:

Цитата Сообщение от Ddv122 Посмотреть сообщение
скорость работы - велика
Лучше чем пешком.
Цитата Сообщение от AntonChik Посмотреть сообщение
пойму, могу Вам советовать или нет?
Имелось в виду от старших духовно.
Если вы каждое утро не пьете морс с фотографией далай-ламы, то мне вас жаль.

1
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
06.08.2014, 09:37
Цитата Сообщение от SatanaXIII Посмотреть сообщение
попробуйте стандартным виндовым поиском поискать
известно, что TotalCommander как-то умудряется делать это в разы быстрее
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
06.08.2014, 09:42
Цитата Сообщение от AntonChik Посмотреть сообщение
известно, что TotalCommander как-то умудряется делать это в разы быстрее
О, а я не знал.
Значит есть куда стремиться.
0
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
06.08.2014, 09:57
Цитата Сообщение от SatanaXIII Посмотреть сообщение
чисто ради хохмы, попробуйте стандартным виндовым поиском поискать
Если фоновое индексирование не выключено, будет много быстрее.

Цитата Сообщение от AntonChik Посмотреть сообщение
известно, что TotalCommander как-то умудряется делать это в разы быстрее
Возможно вот так:

http://msdn.microsoft.com/en-u... 85%29.aspx
1
06.08.2014, 19:56

Не по теме:

Цитата Сообщение от SatanaXIII Посмотреть сообщение
Если вы каждое утро не пьете морс с фотографией далай-ламы, то мне вас жаль.
Меня, меня, меня пожалейте! Я каждое утро пью водку с фотографией бори-ельцина :D

0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
11.08.2014, 15:29  [ТС]
Не много подумав и почитав - мне поможет только одно - сканирование таблицы распределения файлов (MFT) (актуально для NTFS )
Но наверно оно того не стоит
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
11.08.2014, 16:55
Из чистого любопытства - наверно нет. И откуда вообще появилась такая идея? Зачем нужны длины пути, да еще и не просто так - а всех файлов?
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
11.08.2014, 17:24  [ТС]
BRcr,

Не по теме:

По долгу работы - приходится много обслуживать жестких дисков (ошибки файловой системы, логические бэд блоки, вирусы и т.д) , но за последние недели встречал "пользователей" которые обходят ограничение 255 (259) символов.
Как? даже не представляю...Но ошибки при манипуляции с файлами я встречал - покуда не "уменьшил" длину имени файла - проблема не устранялась) chkdsk постоянно писал кажись о поврежденных индексах...



ну и цитата


Распределение дискового пространства тома NTFS может быть неправильно определено по одной из следующих причин:
• Размер кластера тома NTFS слишком велик для среднего размера хранящихся файлов.
• Атрибуты файлов или разрешения NTFS препятствуют отображению файлов и папок или доступу к ним при использовании проводника Microsoft Windows или командной строки Windows.
• Путь к папке превышает 255 знаков.
• Папки или файлы имеют неправильные или зарезервированные имена.
• Метафайлы NTFS (такие как основная таблица файлов [MFT]) увеличились в объеме и не могут быть освобождены.
• Файлы или папки содержат альтернативные потоки данных.
• Повреждение NTFS является причиной определения свободного пространства как используемого в Windows.
• Другие возможности NTFS являются причиной неправильного выделения пространства под файлы.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
11.08.2014, 22:30
Ddv122, не знаю, о каком таком ограничении в 255 символов
идет речь, но система прекрасно уживается с намного более длинными путями:

Naming Files, Paths, and Namespaces
http://msdn.microsoft.com/en-u... 85%29.aspx
Maximum Path Length Limitation

The Windows API has many functions that also have Unicode versions to permit an
extended-length path for a maximum total path length of 32,767 characters.
2
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
12.08.2014, 09:08
Цитата Сообщение от Убежденный Посмотреть сообщение
не знаю, о каком таком ограничении в 255 символов идет речь
На заре становления пользовательских операционных систем было такое легендарное "Соглашение 8.3" об именовании файлов, которое гласило, что имена файлов не должны превышать восемь символов. Именно оттуда растут корни, многими ныне считаемыми за глюки файловой системы, преобразования длинных имен файлов к виду, что название начинается с тильды, а длина урезается соответственно до семи символов.
В этом же соглашении так же принимались и многие, теперь считающиеся за норму, правила, типа что файл должен иметь расширение, отделяемое непременно именно точкой, и что оно должно иметь ровно три символа; что имя файла не должно начинаться с цифры, а только с буквы или нескольких спецсимволов; что имя файла наоборот не должно содержать другие некоторые спецсимволы; и так далее.
Имя файла-то именем файла, а ведь есть еще и путь к файлу, который предусмотрительно сделали побольше. Отсюда взялось
Цитата Сообщение от Ddv122 Посмотреть сообщение
ограничение 255 (259) символов
Путь к файлу от корня диска мог содержать максимум 255 (считалось, что хватит) символов (плюс 256-ой - ноль на конце), а сам диск, символьное его отображение, хранилось отдельно и не входило в общий путь к файлу. По этому суммарная длина строки, содержащей путь к файлу и именование диска, на котором этот файл располагается, могла составлять 259 (3 + 255 + 1) символов.
Примечательно то, возвращаясь к тому, откуда взялось ограничение на восемь символов в имени файла, что не голый путь, а именно путь вместе с именем файла должен был обязательно уместиться в 255 символов. То есть нельзя было создать из ряда директорий путь в 253 символа и положить в него файл, содержащий хотя бы два буквы в названии (253 + \ + 1), - места оставалось бы только на одну.

P.S. Не знаю правда зачем я распинаюсь, Убежденный вероятно лучше б в три раза все это рассказал.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,895
Записей в блоге: 11
12.08.2014, 10:14
Меня больше интересует, как пользователь (не программист, а именно пользователь) может добиться длины пути большей, чем 255... Windows этого не должна позволять вообще-то...
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
12.08.2014, 11:51  [ТС]
UI, с помощью сохранения файла со стороннего ПО
Вот путь с 214 символами...
Миниатюры
Как оптимизировать сбор длины пути всех файлов на ПК?  
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
12.08.2014, 18:38
UI, меня тоже удивило это намедни. Покопавшись, встретил упоминания о паре способов - через тоталкомандер хитронастроенный и через распаковку образа диска akronis.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.08.2014, 18:38
Помогаю со студенческими работами здесь

Вывести на экран абсолютные пути всех файлов, которые находятся в заданном каталоге и всех его подкаталогах
Не могу вернуть масив с директориями...( Если выводить на экран в цикле, то все нормально, но когда с main вывожу возвращаемый массив,...

Сбор файлов по маскам со всех дисков и их архивирование в exe-файл на флешку
Золотые вы мои друзя. Пытаюсь реализовать бат файл с таким набором. Сбор файлов на всех дисках по маскам и архивирование в exe файл на...

Получить и вывести на экран абсолютные пути всех файлов, которые находятся в заданном каталоге и всех его подк
Получить и вывести на экран абсолютные пути всех файлов, которые находятся в заданном каталоге и всех его подкаталогах public String...

Возможно ли вывести в ListBox название всех файлов по заданному пути
Уважаемые программисты, прошу помочь! Возможно ли вывести на ListBox название всех файлов при задание пути. И при нажатие какого-нибудь...

Список всех файлов в каталогах, пути к которым указаны в параметрах
Написать bat-файл, который бы выводил на экран список всех файлов в каталогах, пути к которым указаны в параметрах. Список файлов должен ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru