Здравствуйте, Аноним, Вы писали:
А> Помгите пожалуйста нужна сылка где можно скачать литературу где описана работа с папками (создание ,удаление и т.д.).
Бей лодырей!!! Ах ты, лентяй хренов, на, палучай, тунеядец!!!
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()
позволяет установить атрибуты папки.
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.
может в фак?
приветствую, неизвестный
А>P.P.S.
А>может в фак?
может быть зарегистрируетесь сначала?
А во-вторых неплохо было бы как-тоозаглавить сие творение, как Вы думаете?
ну а там можно обсудить и дополнить коли останется желание в FAQ пихать.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Здравствуйте, Valery A. Boronin, Вы писали:
VAB>может быть зарегистрируетесь сначала?
VAB>А во-вторых неплохо было бы как-тоозаглавить сие творение, как Вы думаете?
VAB>ну а там можно обсудить и дополнить коли останется желание в FAQ пихать.
Ну не хотите — не пихайте
Моё дело предложить
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>> Помгите пожалуйста нужна сылка где можно скачать литературу где описана работа с папками (создание ,удаление и т.д.).
А>Бей лодырей!!! Ах ты, лентяй хренов, на, палучай, тунеядец!!!
А>может что-то не очень корректно изложил, — дополните сами, если знаете точнее.
дополнение (тем кто в Unix страдает)
mkdir() — создание
chdir() — установка текущей
rmdir() — удаление
кстати не знаете почему Микрософт к этим функциям добавил подчеркивание в начало
_mkdir() ...
Здравствуйте, Аноним, Вы писали:
CopyFile() +
DeleteFile() для всех файлов в папке.
Добавь еще CopyFileEx — копирование с прогрессом.и возможностью прервать
А>P.P.S.
А>может в фак?
Я за, но где он ?
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>CopyFile() + DeleteFile() для всех файлов в папке.
PD>Добавь еще CopyFileEx — копирование с прогрессом.и возможностью прервать
Это фак про папки, а не файлы, т.к. вопрос изначально был задан именно про папки.
А>>P.P.S.
А>>может в фак?
PD>Я за, но где он ?
Это к модерам. Не знаю, чего они тянут...
Здравствуйте, Valery A. Boronin, Вы писали:
VAB>приветствую, неизвестный
А>>P.P.S.
А>>может в фак?
VAB>может быть зарегистрируетесь сначала?
VAB>А во-вторых неплохо было бы как-тоозаглавить сие творение, как Вы думаете?
"Бей лодырей!!!"
классное название, запоминается