Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / байда с FindFirstFile / 11 сообщений из 11, страница 1 из 1
11.04.2007, 17:41
    #34453846
батрак
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
байда с FindFirstFile
EУже достало.. помомогите...

Надо найти первый файл исходя из указанной в строке дирректории..
прописал следующий код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	char sPATH[MAX_PATH] = "C:\\MY\\DIR\\*.*";

	WIN32_FIND_DATA FileSearch;
	HANDLE hFile;
	hFile = FindFirstFile(sPATH, &FileSearch);
	if (hFile == INVALID_HANDLE_VALUE || GetLastError())
	{	char Msg[ 100 ];
		sprintf(Msg, "Не валидный хендл hFile \nErrorCode = %d", GetLastError());
		MessageBox(GetActiveWindow(), Msg, "Ошибка", MB_OK | MB_ICONSTOP | MB_SYSTEMMODAL);
		return  0 ;
	}

таки сцуко , не може выполнить FindFirstFile, постоянно либо hFile == INVALID_HANDLE_VALUE либо код ошибки GetLastError() > 0..
если строка char sPATH[MAX_PATH] = "C:\\MY\\DIR\\*.*" - вылетает GetLastError = 126 - то бишь "Не найден указанный модуль. "
если строка char sPATH[MAX_PATH] = "C:\\MY\\DIR\\" - вылетает GetLastError = 2 - то бишь "Не удается найти указанный файл. "
если строка char sPATH[MAX_PATH] = "C:\\MY\\DIR" вылетает опять таки GetLastError = 126 - то бишь "Не найден указанный модуль. "
Естественно все пробывал с терминальным '\0' - нехрена не помогает
Директория C:\\MY\\DIR реально существует и мне надо найти в ней первый фаил!!!

В чем грабли ?
...
Рейтинг: 0 / 0
11.04.2007, 17:47
    #34453878
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
байда с FindFirstFile
Нафига в if-e GetLastError()???
...
Рейтинг: 0 / 0
11.04.2007, 17:53
    #34453897
батрак
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
байда с FindFirstFile
AkhНафига в if-e GetLastError()???
чтобы проверять есть ошибка или нету. 0 - соответсвенно нету..
если убрать все одно толку не много, не находит он первый файл внутри дирректории
судя по структуре FileSearch
...
Рейтинг: 0 / 0
11.04.2007, 17:54
    #34453904
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
байда с FindFirstFile
батрак AkhНафига в if-e GetLastError()???
чтобы проверять есть ошибка или нету. 0 - соответсвенно нету..
если убрать все одно толку не много, не находит он первый файл внутри дирректории
судя по структуре FileSearch

ГетЛасЕррор возврощает последнюю ошибку, а не "была ли в последнем действии ошибка". :)

Что значит "судя по структуре FileSearch"?
...
Рейтинг: 0 / 0
11.04.2007, 17:59
    #34453924
батрак
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
байда с FindFirstFile
Akh батрак AkhНафига в if-e GetLastError()???
чтобы проверять есть ошибка или нету. 0 - соответсвенно нету..
если убрать все одно толку не много, не находит он первый файл внутри дирректории
судя по структуре FileSearch

ГетЛасЕррор возврощает последнюю ошибку, а не "была ли в последнем действии ошибка". :)

Что значит "судя по структуре FileSearch"?
ну да согласен, но предыдущие действия заканчивалось с GetLastError() == 0
ну например для sPATH[MAX_PATH] = "C:\\MY\\DIR"
FileSearch.cFileName будет DIR
для sPATH[MAX_PATH] = "C:\\MY\\DIR\\*.*"
FileSearch.cFileName будет . (точка)
вобщем бред какой-то
...
Рейтинг: 0 / 0
11.04.2007, 18:00
    #34453932
батрак
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
байда с FindFirstFile
У себя спробуй, если не сложно, что получишь ?
...
Рейтинг: 0 / 0
11.04.2007, 18:03
    #34453947
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
байда с FindFirstFile
батракну да согласен, но предыдущие действия заканчивалось с GetLastError() == 0
ну например для sPATH[MAX_PATH] = "C:\\MY\\DIR"
FileSearch.cFileName будет DIR
для sPATH[MAX_PATH] = "C:\\MY\\DIR\\*.*"
FileSearch.cFileName будет . (точка)
вобщем бред какой-тоНу и что тебя смущает? Ты уже успешно нашел первый файл. Или ты не знал что первым файлом в любом каталоге (кроме корня) будет "."?
...
Рейтинг: 0 / 0
11.04.2007, 18:08
    #34453965
батрак
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
байда с FindFirstFile
White Owl батракну да согласен, но предыдущие действия заканчивалось с GetLastError() == 0
ну например для sPATH[MAX_PATH] = "C:\\MY\\DIR"
FileSearch.cFileName будет DIR
для sPATH[MAX_PATH] = "C:\\MY\\DIR\\*.*"
FileSearch.cFileName будет . (точка)
вобщем бред какой-тоНу и что тебя смущает? Ты уже успешно нашел первый файл. Или ты не знал что первым файлом в любом каталоге (кроме корня) будет "."?

Мдааа, я это не знал... И что действительно первый файл будет "."???
...
Рейтинг: 0 / 0
11.04.2007, 18:12
    #34453972
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
байда с FindFirstFile
батракМдааа, я это не знал... И что действительно первый файл будет "."???Да, действительно. Первый файл в любом каталоге (кроме корня) это ссылка на самого себя, обозначается точкой. Второй файл ссылка на родительский каталог обозначается двумя точками, и только третий файл будет уже реальным файлом. Так что запускаешь FindFirst а потом два раза FindNext это и будет твой "первый файл в каталоге".
...
Рейтинг: 0 / 0
11.04.2007, 18:13
    #34453976
батрак
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
байда с FindFirstFile
White Owl батракМдааа, я это не знал... И что действительно первый файл будет "."???Да, действительно. Первый файл в любом каталоге (кроме корня) это ссылка на самого себя, обозначается точкой. Второй файл ссылка на родительский каталог обозначается двумя точками, и только третий файл будет уже реальным файлом. Так что запускаешь FindFirst а потом два раза FindNext это и будет твой "первый файл в каталоге".
спасибо . очень помог..
...
Рейтинг: 0 / 0
12.04.2007, 16:01
    #34456576
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
байда с FindFirstFile
White OwlДа, действительно. Первый файл в любом каталоге (кроме корня) это ссылка на самого себя, обозначается точкой. Второй файл ссылка на родительский каталог обозначается двумя точками, и только третий файл будет уже реальным файлом.в корневом точка тоже должна быть, двух точек не должно быть.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / байда с FindFirstFile / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]