Расширенная функция создания каталога. Она создает каталог беря все атрибуты от каталога указанного как шаблон в том числе и атрибуты секретности.
BOOL CreateDirectoryEx ( LPCTSTR lpTemplateDirectory, // каталог шаблон LPCTSTR lpNewDirectory, // имя нового каталога LPSECURITY_ATTRIBUTES lpSecurityAttributes // атрибут безопасности );
В случае успешного выполнения вернет ненулевое значение. Посмотреть как это работает можно так, вот код:
// TestAPI.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "windows.h" #include "iostream.h" void main() { if (CreateDirectoryEx("c:\\temp","c:\\new",NULL)) cout << "directory create" << endl; else cout << "error create directory" << endl; }
Устанавливаем у каталога temp атрибут только чтение. Запускаем программу и смотрим атрибуты у вновь созданной папки.
Атрибут сохранился. Только не забудьте с temp снять атрибут "только для чтения", а то могут быть неприятности.