Здравствуйте, Аноним, Вы писали:

А> Помгите пожалуйста нужна сылка где можно скачать литературу где описана работа с папками (создание ,удаление и т.д.).


Бей лодырей!!! Ах ты, лентяй хренов, на, палучай, тунеядец!!!




Создание

CreateDirectory()
создаёт только последнюю папку в указанном пути, т.е. если промежуточные папки не существуют, они не будут созданы и функция вернёт ашипку. Позволяет назначить права папке.
SHCreateDirectory()
создаёт папку со всеми указанными промежуточными папками.
SHCreateDirectoryEx()
то же самое, плюс позволяет назначить права папке.

Удаление

RemoveDirectory()
удаляет только пустые папки. Иначе — вернёт ашипку.
SHFileOperation()
удаляет папку со всем содержимым.
флаг FO_DELETE.

Копирование

SHFileOperation()
копирует папку со всем содержимым.
флаг FO_COPY.

Перемещение

MoveFileEx()
перемещает папку в пределах того же физического тома, если необходимо переместить на другой том, необходимо разрешить системе это, указав флаг MOVEFILE_COPY_ALLOWED, в этом случае будет сэмулирована работа функций CopyFile() + DeleteFile() для всех файлов в папке.
также позволяет отложить выполнение операций до перезагрузки, для этого необходимо указать флаг MOVEFILE_DELAY_UNTIL_REBOOT.
MoveFileWithProgress()
то же самое, плюс позволяет отследить состояние перемещения в своей callback-функции.
SHFileOperation()
копирует папку со всем содержимым.
флаг FO_MOVE.

Текущая папка

GetCurrentDirectory()
позволяет получить путь к текущей папке вызывающего процесса.
SetCurrentDirectory()
позволяет установить текущую папку для вызывающего процесса.

Атрибуты

GetFileAttributes()
позволяет получить атрибуты папки.
GetFileAttributesEx()
тоже самое, плюс возвращает такую информацию: дату создания, последнего доступа, изменения.
SetFileAttributes()
позволяет установить атрибуты папки.

Чтение в RAW-режиме

CreateFile()
позволяет открыть и читать данные папки в RAW-режиме. Для чтения используется ReadFile(), для записи — WriteFile().
чтобы читать/писать в файловые потоки, к имени файла нужно добавить ":<stream_name>", например, так: "C:\file.ext:stream1".

Шифрование

EncryptFile()
шифрует папку, устанавливая атрибут FILE_ATTRIBUTE_ENCRYPTED.
DecryptFile()
дешифрует папку, снимая атрибут FILE_ATTRIBUTE_ENCRYPTED.

Безопасность

GetSecurityInfo()
позволяет получить копию следующей информации: дескриптор безопасности папки, владелец, группа, SACL, DACL.
нужны права на чтение данной инфы безопасности.
SetSecurityInfo()
позволяет установить следующюю информацию: дескриптор безопасности папки, владелец, группа, SACL, DACL.
разумеется для этого нужны права на смену соответствующей информации.

Получение содержимого

FindFirstFile()
начинает поиск элементов файловой системы в указанной папке.
есть возможность указать маску поиска.
FindNextFile()
возвращает следующий элемент в папке.
FindClose()
закрывает хендл поиска и освобождает соответствующие ресурсы.

Отслеживание изменений

FindFirstChangeNotification()
запускает механизм отслеживания изменений для данной папки и возвращает соответствующий хендл.
позволяет указать, какие именно изменения мы хотим отслеживать.
чтобы отследить момент изменения, достаточно передать полученный хендл в любую функцию ожидания, например, WaitForSingleObject().
FindNextChangeNotification()
После получения уведомления от функции ожидания о том, что произошли изменения, мы можем вызвать эту функцию, чтобы продолжить наблюдение и затем опять вызвать функцию ожидания.
FindCloseChangeNotification()
эту функцию мы можем вызвать, чтобы остановить ранее запущеное отслеживание изменений.
ReadDirectoryChangesW() [только Windows NT и выше]
также возвращает информацию об изменениях в папке; может быть вызвана асинхронно.

Пользовательские данные

DeviceIoControl()
Необходимо указать флаг FSCTL_SET_REPARSE_POINT.
С помощью этой функции приложение уровня пользователя (ring3) может установить свои данные в папку (папка становиться точкой разрежения — reparse point). Т.к. данные записываются драйвером файловой системы, а формат этих данных ему неизвестен, приложение должно установить в систему драйвер-фильтр файловой системы, чтобы он преобразовывал пользовательские данные в формат, в котором драйвер файловой системы сможет их записать в папку. Каждая запись должна сопровождаться указанием тега данных типа DWORD.




P.S.
может что-то не очень корректно изложил, — дополните сами, если знаете точнее.

P.P.S.
может в фак?
Автор:     Оценить