Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Win API


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / WinAPI

Выпуск № 412
от 13.04.2007, 03:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 417, Экспертов: 51
В номере:Вопросов: 1, Ответов: 1


Вопрос № 81523: Здраствуйте!! у меня два вопроса: 1)при нахождение файлов, примерно так hFile=FindFirstFile("*.*",&lpFile); .. while(b) {m_MainList.AddString(lpFile.cFileName); b=FindNextFile(hFile,&lpFile); } выводиться &...

Вопрос № 81.523
Здраствуйте!! у меня два вопроса:
1)при нахождение файлов, примерно так
hFile=FindFirstFile("*.*",&lpFile);
..
while(b)
{m_MainList.AddString(lpFile.cFileName);
b=FindNextFile(hFile,&lpFile);
}
выводиться "." и "..", как зделать чтобы они не выводились а только файлы и папки???

2)и ни как не могу проследить изменение в папке
зависает на WaitForSingleObject(hChange,INFINITE)

Вот мой код
при инициализации:
hChange=FindFirstChangeNotification(DS,TRUE,FILE_NOTIFY_CHANGE_FILE_NAME);
if(hChange==INVALID_HANDLE_VALUE)AfxMessageBox("not notification");
AfxBeginThread(ThreadChange,&l);
....
//сам поток
UINT ThreadChange(LPVOID param)
{
for(;;)
{
if(WaitForSingleObject(hChange,INFINITE)==WAIT_OBJECT_0)
{
AfxMessageBox("BEgin");
SendMessage(HWND_BROADCAST,WM_MyMessage,0,0);
FindNextChangeNotification(hChange);}
}
return 0;
}
У меня уже была такая ошибка тогда в DS я вносил "C:\new" а изменивший на "C:\new\" все работало а теперь вроде все правильно и все равно не работает в чем ошбка???
Отправлен: 08.04.2007, 02:06
Вопрос задал: HITY (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Решетник Д
Здравствуйте, HITY!
1. Просто проверяйте свойство lpFileюcFileName на соответствие значениям "." и ".." (чтобы не были равны.
2. Если вам нужно поставить защиту на папку или файл, чтобы не снесили попробуйте использовать вот такое:

на файл
hFile = CreateFile(fn, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
на папку
hFolder = CreateFile (dir,
FILE_LIST_DIRECTORY,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS,
NULL);

---------
Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: Студент)
Ответ отправлен: 08.04.2007, 12:40
Оценка за ответ: 4
Комментарий оценки:
И за это спасибо


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.48 от 12.04.2007
Яндекс Rambler's Top100

В избранное