Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ребята нужна помощь по C++

Coder1 Мастер (1161), закрыт 14 лет назад
вот я начеркал эту прогу она отображает файлы и каталоги в текущем коталоге а мне нужно написать что то типа рекурсии расшарить каждый коталог . .вообщем что бы она умела шарить все коталоги и подкоталоги и также хорошо всё выводить..
Лучший ответ
Κότ μάτρόϛκϰΗ Просветленный (21362) 14 лет назад

void ScanDirectory(LPTSTR lpPath)
{
int n = lstrlen(lpPath);
lstrcpy(&lpPath[n++], _T("\\*.*"));

WIN32_FIND_DATA fd;
HANDLE hf = FindFirstFile(lpPath, &fd);
if (hf != INVALID_HANDLE_VALUE)
{
do
{
lstrcpy(&lpPath[n], fd.cFileName);
if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// TODO: directory
if (lstrcmp(fd.cFileName, _T(".")) && lstrcmp(fd.cFileName, _T("..")))
{
ScanDirectory(lpPath);
}
}
else
{
// TODO: file
}
} while (FindNextFile(hf, &fd));
FindClose(hf);
}

lpPath[--n] = 0;
}

void main()
{
TCHAR szPath[MAX_PATH];
lstrcpy(szPath, _T("C:"));
ScanDirectory(szPath);
}
Coder1Мастер (1161) 14 лет назад
огромное спасибо очень выручил . .
Остальные ответы
служебная КГУ Ученик (109) 14 лет назад
void main()
{
system("dir /b /s c:\");
}

Библиотеку для использования system посмотри в msdn
Profit!
Сергей МаксимовМудрец (10484) 14 лет назад
тупая идея
по нормальному это делается через

FindFirstFile
FindNextFile
Andrey Nemov Ученик (114) 14 лет назад
Есть очень хороша недорогая программа pascal pro помогает решать задачи любого типа ПАСКАЛЬ. Очень удобная и мало весит. Вводишь условие задачи и он те начинает решать за кротчайшее время! Интерфейс очень понятный. Русская программа.
Вот скрины к этой проге
http://uploadbox.com/files/2018059191/
Сама прога
[ссылка заблокирована по решению администрации проекта]
Coder1Мастер (1161) 14 лет назад
я тебя бля щя зубы выбью . .ты меня что за школьника считаешь нах мне упал твой пиздоебаный паскаль . .ты видешь на чём я пишу !!!еблан ушастый. . ебонтяй .. пиздаруб недарубленный. . ебать тебя в тёрку. .
Сергей Максимов Мудрец (10484) 14 лет назад
вот это выводит листиннг c:\*.*

#include <stdio.h>
#include <windows.h>

int main(void)
{
WIN32_FIND_DATA FindFileData;
void *FindHandle;
int RetVal;

ZeroMemory(&FindFileData,sizeof(FindFileData));

if((FindHandle=FindFirstFile("c:\\*.*",&FindFileData))==INVALID_HANDLE_VALUE)return 0;

RetVal=1;

while(RetVal)
{
printf("%s\r\n",FindFileData.cFileName);

ZeroMemory(&FindFileData,sizeof(FindFileData));
RetVal=FindNextFile(FindHandle,&FindFileData);
}

FindClose(FindHandle);

return 0;
}
Похожие вопросы