Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: команда Dir своими руками  (Прочитано 12338 раз)
0 Пользователей и 6 Гостей смотрят эту тему.
CAHTA
Гость
« : 12-12-2005 22:20 » 

есть вопрос... ( не прозьба дать мне уже готовый код)
как можно реализовать вручную команду dir ?

перенаправить поток dir'а в файл это конечнож вариант, но ... не из лучших...

помогите плиззз... кто чем сможет
« Последнее редактирование: 17-12-2007 17:22 от Алексей1153++ » Записан
acc15
Гость
« Ответ #1 : 13-12-2005 05:11 » 

findfirst
findnext
и пару минут... там впринципе делать то нечего...
для винды мог бы написать, напиши платформу для которой пишешь
« Последнее редактирование: 13-12-2005 05:23 от acc15 » Записан
CAHTA
Гость
« Ответ #2 : 13-12-2005 10:45 » 

ага , для винды ХР...

а как с ними работать?
Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 13-12-2005 10:55 » 

См. документацию в MSDN

FindFirstFile/FindNextFile
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
CAHTA
Гость
« Ответ #4 : 13-12-2005 11:09 » 

я ее удалил... Жаль  а сетапа нету Жаль
напишите ктониб что эт за коменды ?
Записан
Hooter
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 13-12-2005 11:51 » 

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/findfirstfile.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/findnextfile.asp
Записан
Hooter
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 13-12-2005 11:51 » 

а это пример использования Улыбаюсь

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/listing_the_files_in_a_directory.asp
Записан
Hooter
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 13-12-2005 18:57 » 

примечание: БУФЕР НАДО ДЕЛАТЬ ОГРОМНЫЙ... где-то под 1 или 2 Кб
Это по каким критериям ты оценивал предполагаемый размер буфера? Улыбаюсь
Почему не 10 Кб? Или не 1 Мб?

Почему бы не использовать std:string или Cstring?
Или уж если нужно использовать "голый" Си, то динамически увеличивать размер буфера при надобности?
Записан
acc15
Гость
« Ответ #8 : 14-12-2005 02:01 » 

вот вложение
2Hooter: Доволен?
Код:
unsigned long DirList(const char * dirpath,
CharBuf &buf,
const char separator
)
{
if (!dirpath) return 0;

WIN32_FIND_DATA fdata;

size_t l=strlen(dirpath);
buf.Clear();
if (!buf.AddArray(dirpath,l)) return 0;
if (dirpath[l-1]!='\\')
if (!buf.Add('\\')) return 0;
if (!buf.AddArray("*.*\0",4)) return 0;

HANDLE fhandle = FindFirstFile(buf.GetBuf(),&fdata);
if (fhandle == (HANDLE) -1) return 0;

unsigned long items=0;
BOOL res=FALSE;

buf.Clear();
do
{
if (!buf.AddArray(fdata.cFileName,strlen(fdata.cFileName))) break;
if (!buf.Add(separator)) break;
items++;
res = FindNextFile(fhandle,&fdata);
} while (res);

FindClose(fhandle);
buf.Add('\0');
return items;
}

собственно теперь всё должно быть понятно...
пример:
Код:
int main(int argc, char *argv[])
{
CharBuf buf;
DirList("D:",buf);
puts(buf.GetBuf());
}

* dir.rar (1.46 Кб - загружено 914 раз.)
« Последнее редактирование: 17-12-2007 17:23 от Алексей1153++ » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines