Форум программистов CodeGuru
18 Январь 2018, 16:08:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Установка атрибутов папки сжатый или зашифрованный.  (Прочитано 14066 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Indahaus
Новичок
*
Офлайн Офлайн

Сообщений: 1


Просмотр профиля
« : 28 Октябрь 2010, 20:37:36 »

Весь инет перерыл ничего толком не нашёл, как установить именно папку сжатой или зашифрованной и наоборот.
SetFileAttributes("C:\\Test", FILE_ATTRIBUTE_NORMAL); // устанавливает только как обычную не скрытую и не системную папку. А типы "сжатый" или "зашифрованный" вообще не трогает.

Пытался сделать так:
Код:
HANDLE hFile=NULL;
unsigned int iCompression=0; // для сжатого файла, т.е. сбросить тип сжатый.

hFile = CreateFile("C:\\Test", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0);
if (INVALID_HANDLE_VALUE == hFile) {
        return false;
}
 
if (iCompress == 1) {
        iCompression = COMPRESSION_FORMAT_DEFAULT;
} else {
        iCompression = COMPRESSION_FORMAT_NONE;
}
DWORD dw=0;
if (FALSE == DeviceIoControl(hFile, FSCTL_SET_COMPRESSION, &iCompression, sizeof(unsigned int), NULL, 0, &dw, NULL)) {
        CloseHandle(hFile);
        hFile = NULL;
        return false;
}
CloseHandle(hFile);
hFile = NULL;
return true;
но действует только на файлы! а на папки не действует вообще.
Как получить дескриптор папки от CreateFile или хотя бы с помощью другой функции? или можно как-то другим способом сделать?

Также и шифрование и дешифрование соответственно функции EncryptFile и DecryptFile - только для файлов, а на папки вообще не действует. Помогите пожалуйста.
Записан
Valery
Пользователь
***
Офлайн Офлайн

Сообщений: 83


Просмотр профиля
« Ответ #1 : 28 Октябрь 2010, 23:41:23 »

ЗНАЧИТСЯ ТАК
Ты создаешь папку CreateFile ?
если да то CreateDirectory по моему так иначе ты создаешь файл
или ты хочешь работать с готовой?
тогда

Код:
HANDLE hand=FindFirstFile(nameFindFile,&FindData);
if(hand!=(HANDLE)-1)

.....
if(FindData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)// здесь мы проверяем директория ли

устанавливать атрибуты лучше SetFileAttributes()

FILE_ATTRIBUTE_COMPRESSED   Файл или каталог сжатые. Для файла, это означает, что все данные в файле сжимаются. Для каталога, это означает, что сжатие является значением по умолчанию для недавно созданных
файлов и вложенных каталогов.

FILE_ATTRIBUTE_ENCRYPTED   Файл или каталог - зашифрованные. Для файла, это означает, что все потоки данных в файле зашифрованы. Для каталога, это означает, что шифрование - это значение по умолчанию для недавно созданных файлов и вложенных каталогов.

С уважением Валерий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!