папки
От: Аноним  
Дата: 06.01.07 08:30
Оценка:
Помгите пожалуйста нужна сылка где можно скачать литературу где описана работа с папками (создание ,удаление и т.д.).
Работа с каталогами
От: Аноним  
Дата: 06.01.07 20:21
Оценка: 16 (6)
#Имя: FAQ.winapi.directory
Здравствуйте, Аноним, Вы писали:

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


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




Создание

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.
может в фак?
Re[2]: папки
От: BlackHeretic Израиль  
Дата: 07.01.07 12:51
Оценка:
Создается впечатление что это жестоко скопипесчено откуда-то
Поделитесь откуда, очень уж кратко и по делу написано
ICQ 156156278
Re[2]: папки
От: Valery A. Boronin Россия linkedin.com/in/boronin
Дата: 24.01.07 17:13
Оценка:
приветствую, неизвестный

А>P.P.S.

А>может в фак?
может быть зарегистрируетесь сначала?
А во-вторых неплохо было бы как-тоозаглавить сие творение, как Вы думаете?

ну а там можно обсудить и дополнить коли останется желание в FAQ пихать.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[3]: папки
От: Аноним  
Дата: 24.01.07 17:31
Оценка:
Здравствуйте, Valery A. Boronin, Вы писали:

VAB>может быть зарегистрируетесь сначала?

VAB>А во-вторых неплохо было бы как-тоозаглавить сие творение, как Вы думаете?

VAB>ну а там можно обсудить и дополнить коли останется желание в FAQ пихать.


Ну не хотите — не пихайте Моё дело предложить
Re[2]: папки
От: Какая разница Украина  
Дата: 25.01.07 09:02
Оценка:
Здравствуйте, Аноним, Вы писали:

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


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


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


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


дополнение (тем кто в Unix страдает)

mkdir() — создание
chdir() — установка текущей
rmdir() — удаление

кстати не знаете почему Микрософт к этим функциям добавил подчеркивание в начало
_mkdir() ...
!0xDEAD
Re[2]: папки
От: Pavel Dvorkin Россия  
Дата: 25.01.07 12:27
Оценка:
Здравствуйте, Аноним, Вы писали:

CopyFile() + DeleteFile() для всех файлов в папке.

Добавь еще CopyFileEx — копирование с прогрессом.и возможностью прервать

А>P.P.S.

А>может в фак?

Я за, но где он ?
With best regards
Pavel Dvorkin
Re[3]: папки
От: Аноним  
Дата: 25.01.07 13:07
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>CopyFile() + DeleteFile() для всех файлов в папке.

PD>Добавь еще CopyFileEx — копирование с прогрессом.и возможностью прервать

Это фак про папки, а не файлы, т.к. вопрос изначально был задан именно про папки.

А>>P.P.S.

А>>может в фак?
PD>Я за, но где он ?

Это к модерам. Не знаю, чего они тянут...
Re[3]: папки
От: Аноним  
Дата: 25.01.07 13:18
Оценка:
Здравствуйте, Какая разница, Вы писали:

КР>дополнение (тем кто в Unix страдает)


КР>mkdir() — создание

КР>chdir() — установка текущей
КР>rmdir() — удаление

Не имеет смысла добавлять это сюда, т.к. эти функции являются частью CRT и косвенно один хрен обращаются к Windows API. Тем более, что вопрос был задан в форум по Windows API, а не по Unix API.

КР>кстати не знаете почему Микрософт к этим функциям добавил подчеркивание в начало

КР>_mkdir() ...

ХЗ.
Re: Работа с каталогами
От: lelik93  
Дата: 12.02.07 14:41
Оценка:
SHCreateDirectory — работает далеко не на всех операционках.
Re[2]: Работа с каталогами
От: Аноним  
Дата: 12.02.07 15:26
Оценка: -1
Здравствуйте, lelik93, Вы писали:

L>SHCreateDirectory — работает далеко не на всех операционках.


Спасибо, MSDN мы и без тебя читать умеем.
Re[3]: папки
От: acronim  
Дата: 19.02.07 21:35
Оценка: :)
Здравствуйте, Valery A. Boronin, Вы писали:

VAB>приветствую, неизвестный


А>>P.P.S.

А>>может в фак?
VAB>может быть зарегистрируетесь сначала?
VAB>А во-вторых неплохо было бы как-тоозаглавить сие творение, как Вы думаете?

"Бей лодырей!!!"
классное название, запоминается
Все должно быть просто
Re[3]: папки
От: 0x8000FFFF Россия  
Дата: 20.02.07 05:12
Оценка:
КР>mkdir() — создание
КР>chdir() — установка текущей
КР>rmdir() — удаление

Во первых это стандарт CRT — эти функции одинаковы на любых платформах

КР>кстати не знаете почему Микрософт к этим функциям добавил подчеркивание в начало

КР>_mkdir() ...

Потому что, префикс _метод означает специфичную для платформы реализацию, а fun обычно либо врапер, либо продефайнен от _fun...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.