Точки при выводе содержимого каталога - C (СИ)
Формулировка задачи:
Здравствуйте.
Моя проблема заключается в том, что при выводе содержимого каталога, выводятся так же непонятные точки. С чем это может быть связано?
)
Функция:
void catalog(){
WIN32_FIND_DATA FindFileData;
HANDLE hf;
int result;
//создаем каталог, если не существует
result = mkdir("catalog");
if (result == 0)
printf("Каталог \"Curs10\\catalog\" создан\n");
//Вывод содержимого каталога
printf("Содержимое каталога (Curs10\\catalog):\n");
hf = FindFirstFile(L"catalog\\*", &FindFileData);
if (hf != INVALID_HANDLE_VALUE){
do{
wprintf(L"%s\n", FindFileData.cFileName);
} while (FindNextFile(hf, &FindFileData) != 0);
FindClose(hf);
printf("=====================================\n");
}
}Решение задачи: «Точки при выводе содержимого каталога»
textual
Листинг программы
if(FindFileData.cFileName[0]!=L'.') wprintf(L"%s\n", FindFileData.cFileName);
Объяснение кода листинга программы
- В условии if (FindFileData.cFileName[0] != L'.') проверяется, является ли первый символ имени файла точкой.
- Если условие истинно (то есть первый символ не является точкой), то выполняется команда wprintf(L
%s\n, FindFileData.cFileName), которая выводит имя файла на консоль. - wprintf — это функция вывода широких символов.
- L
%s\n— это форматная строка, в которой %s соответствует месту, где должно быть выведено имя файла, а \n — символ новой строки. - FindFileData.cFileName — это переменная типа wchar_t, которая содержит имя файла, найденного в каталоге.