Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2015, 11:13   #1
botan32
Пользователь
 
Регистрация: 26.11.2015
Сообщений: 52
По умолчанию Работа с файлами и директориями

Добрый день! Нужна помощь. Есть функция, которая считает количество файлов в директории. Работает нормально, результат сходится со свойствами Windows, но когда пытаюсь получить количество файлов в папке Windows, результат сильно расходится. С чем это может быть связано и как доработать функцию, что бы выдавала верный результат?

Вот функция:

Код:
function  CountOfFiles(Dir: string) : integer;
var
  lResult : integer;
  SearchRec: TSearchRec;
begin
  Dir := IncludeTrailingBackslash(Dir);
  lResult := 0;
  if FindFirst(Dir + '*.*', faAnyFile, SearchRec) = 0 then
    repeat
      Application.ProcessMessages;
      if (SearchRec.Attr and faDirectory) <> 0 then
      begin
        if (SearchRec.name <> '.') and (SearchRec.name <> '..') then
              lResult := lResult +  CountOfFiles(Dir + SearchRec.name);
      end
      else
        Inc(lResult);
    until FindNext(SearchRec) <> 0;
  FindClose(SearchRec);
  CountOfFiles := lResult;
end;

Последний раз редактировалось Stilet; 04.12.2015 в 11:19.
botan32 вне форума Ответить с цитированием
Старый 04.12.2015, 11:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну не исключено что запуск с правами админа нужен.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.12.2015, 11:30   #3
botan32
Пользователь
 
Регистрация: 26.11.2015
Сообщений: 52
По умолчанию

А каким образом тогда реализовать выполнение этой функции с правами админа? И вообще это возможно?

Для сравнения пробовал поиск Total Commander-ом, его результат сходится со свойствами системы и запускается он без прав администратора.
botan32 вне форума Ответить с цитированием
Старый 04.12.2015, 11:47   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что я могу тебе сказать?...
Безымянный.jpg
Ищи проблему в запуске своего приложения... Не хватает ему доступа.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.12.2015, 12:06   #5
botan32
Пользователь
 
Регистрация: 26.11.2015
Сообщений: 52
По умолчанию

У меня Windows 10. Наблюдается интересная ситуация. Если я запускаю в обычном режиме, то показывает меньше файлов чем система (рисунок Безымянный1), а если запускаю с правами админа - то больше (рисунок Безымянный)
Изображения
Тип файла: png Безымянный.png (72.6 Кб, 79 просмотров)
Тип файла: png Безымянный1.png (67.8 Кб, 74 просмотров)
botan32 вне форума Ответить с цитированием
Старый 04.12.2015, 12:14   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

У меня старушка Win-7. Она еще не умеет готовить кофе в пастель, поэтому показывает ровно столько, сколько есть (бугагагага!)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.12.2015, 12:30   #7
botan32
Пользователь
 
Регистрация: 26.11.2015
Сообщений: 52
По умолчанию

Ща попробовал на другом компе с Win-7. Разница тоже есть. Не знаю как быть, очень нужна помощь.
Изображения
Тип файла: png Снимок.PNG (69.8 Кб, 77 просмотров)
botan32 вне форума Ответить с цитированием
Старый 04.12.2015, 12:32   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну твой код правильный. Это 100 пудов. Проблема не в нем...
Скрытые файлы может не учитываются...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.12.2015, 12:33   #9
botan32
Пользователь
 
Регистрация: 26.11.2015
Сообщений: 52
По умолчанию

Может я неправильно реализовал функцию. Вот для примера исходник

По поводу скрытых файлов, там стоит атрибут "ВСЕ ФАЙЛЫ".
Вложения
Тип файла: rar количество файлов новая.rar (53.7 Кб, 9 просмотров)

Последний раз редактировалось Stilet; 04.12.2015 в 13:01.
botan32 вне форума Ответить с цитированием
Старый 04.12.2015, 13:04   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да все правильно... Ну приложи еще скомпилированный файл - я запущу у себя.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами: запись, добавление, чтение (найти ошибку в коде) / C для начинающих Надо создать программу для работы с файлами Konlor Общие вопросы C/C++ 2 18.05.2014 12:37
Работа с файлами и директориями. Как копировать директорию с ее содержимым в другую директорию??? Дмитрий_Попов Общие вопросы C/C++ 1 14.12.2011 21:49
Работа с директориями Anubys Win Api 4 04.12.2011 13:04
Работа с директориями. С++ leeeys Помощь студентам 6 14.05.2011 16:59
Работа с файлами Gen_r_questions PHP 5 29.04.2011 09:01