Вопрос № 81399: Здраствуйте!!! как Создавать каталоги с атрибутами(скрытый, только чтение и т.д.). и как при этом более быстро проверить была ли уже создана папка!!!...
Вопрос № 81.399
Здраствуйте!!! как Создавать каталоги с атрибутами(скрытый, только чтение и т.д.). и как при этом более быстро проверить была ли уже создана папка!!!
Отправлен: 07.04.2007, 02:06
Вопрос задал: HITY (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Gh0stik
Здравствуйте, HITY!
Используйте такие функции:
1) function SetFileAttributes(lpFileName: PChar; dwFileAttributes: DWORD): BOOL;
Функция устанавливает атрибуты файла или папки.
Параметры
lpFileName: Строка которая определяет путь к файлу или папки, чьи аттрибуты необходимо установить.
Win NT2000XP: В ANSI-версии этой функции строка ограничена MAX_PATH. Для того чтобы вызвать расширенную функцию вызовите функцию SetFileAttributesW и добавте "\?" в начало строки содержащей путь.
Win 95/98/Me: Cтрока не должна превышать константу MAX_PATH.
dwFileAttributes: Аттрибуты для файла или папки. См. FILE_ATTRIBUTE_. Тем не менее все другие значения аннулируют аттрибут FILE_ATTRIBUTE_NORMAL.
Возвращаемые значения
Если функция добивается успеха, возвращаемая величина не нуль, в противном случае нуль. Для того, чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError.
Замечания
Далее описывается как установить аттрибуты, которые нельзя установить функцией SetFileAttributes.
FILE_ATTRIBUTE_COMPRESSED, Чтобы устанавливать файловое состояние сжатия, использовать функцию DeviceIoControl с операцией FSCTL_SET_COMPRESSION.
FILE_ATTRIBUTE_DEVICE - Зарезервирован; не использовать.
FILE_ATTRIBUTE_DIRECTORY - Файлу не может быть присвоен аттрибут папки. Для того, чтобы создать папку, используйте функции CreateDirectory или CreateDirectoryEx.
FILE_ATTRIBUTE_ENCRYPTED - Чтобы создать закодированный файл, используйте функцию CreateFile с атрибутом FILE_ATTRIBUTE_ENCRYPTED. Для того, чтобы преобразовывать существующий файл в закодированный файл, используйте функцию EncryptFile.
FILE_ATTRIBUTE_REPARSE_POINT - Чтобы соединить реперную точку с файлом, используйте функцию DeviceIoControl с операцией FSCTL_SET_REPARSE_POINT.
FILE_ATTRIBUTE_SPARSE_FILE - Чтобы установить аттрибут редкий файл, используйте функцию DeviceIoControl с операцией FSCTL_SET_SPARSE.
2) function CreateDirectory(lpPathName: PChar;
lpSecurityAttributes: PSecurityAttributes): BOOL;
Создает новую папку. Если файловая система поддерживает безопасность, функция применяет указанный описатель безопасности к новой папке. Обратите внимание, что CreateDirectory не имеет параметра шаблона, в то время как CreateDirectoryEx имеет.
Параметры
lpPathName: Строка содержащая путь к создаваемой папке.
Максимальный размер пути равен MAX_PATH знаков.
Windows NT: Можно использовать пути более MAX_PATH знаков, вызывая расширенную (W) версию CreateFile и подставив " \?" в Путь. " \?" говорит функции выключать парсинг пути. Это позволяет вам использовать пути, которые имеют почти 32 000 Unicode знаков. Функция также работает с именами internet-протокола. " \?" игнорируется как часть пути. Например, " \?C:myworldprivate" будет трансформирован в "C:myworldprivate", а " \?UNC om_1hotstuffcoolapps" будет
трансформирован в "\tom_1hotstuffcoolapps".
lpSecurityAttributes: Указатель на структуру TSecurityAttributes, которая определяет, может ли возвращенный указатель быть использован процессами-потомками. Если lpSecurityAttributes является пустым, указатель не может быть унаследован.
Windows NT: поле структуры lpSecurityDescriptor определяет описатель безопасности для объекта. Если lpSecurityAttributes является пустым, объект получает описатель по умолчинию. Файловая система должна поддерживать ружим безопасности.
Windows 95: поле lpSecurityDescriptor игнорируется.
Возвpащаемое значение:
Если успешно то не ноль.
Если функция терпит неудачу - ноль. Чтобы получить расширенную информацию об ошибке, вызовите функцию GetLastError.
Good Luck!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 07.04.2007, 02:30 Оценка за ответ: 4 Комментарий оценки: Спасибо за помощь!!