Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2010, 16:13   #1
Alena-b-v
Пользователь
 
Регистрация: 28.05.2010
Сообщений: 10
По умолчанию if (fileinfo->attrib==????) и удаление файла

Надо в программке сделать проверку атрибута. В том случае, если у файла (каталога) установлен атрибут Read-Only, необходимо его удалить.
Написала код:
Код:
void Dell()                        
{
	char path[70];
	cout << "\nEnter full path (for example, C:\\*.*):";
	cin >> path;
	_finddata_t *fileinfo=new _finddata_t;	
	long done = _findfirst(path,fileinfo);
	int MayWeWork = done;	
	int count = 0;   
	while (MayWeWork!=-1)
	{	
		if (fileinfo->attrib==?????????????????)
		{
			????????????????????
		}
		count++;
		cout << fileinfo->name << "\n\n"; 
		MayWeWork = _findnext(done, fileinfo);        
	}
	// Вывод сообщения о количестве найденных файлов.
	cout << "\nInformation: was found " << count;
	cout << " file(s) in folder..." << path << "\n\n";

	// Очистка памяти
	_findclose(done);
	delete fileinfo;
}
Подскажите пожалуйста что нужно писать в строчке if (fileinfo->attrib==????) - чтобы проверить имеет ли заданный файл атрибут Read-Only и как его удалить
{
????????????????????
}
Alena-b-v вне форума Ответить с цитированием
Старый 02.09.2010, 16:26   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если не секрет в каком хедере описан _finddata_t ?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.09.2010, 16:32   #3
Alena-b-v
Пользователь
 
Регистрация: 28.05.2010
Сообщений: 10
По умолчанию

Вроде как в этом
Код:
#include <io.h>
но еще может быть и в этом #include <stdio.h>
Alena-b-v вне форума Ответить с цитированием
Старый 02.09.2010, 16:57   #4
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Если не ошибаюсь ,то вот тут находится
Код:
#include <io.h>
Насчет того, что проверять, попробуй следующие флаги:
FileAttributes:
Код:
FILE_ATTRIBUTE_ARCHIVE
FILE_ATTRIBUTE_HIDDEN
FILE_ATTRIBUTE_NORMAL
FILE_ATTRIBUTE_OFFLINE
FILE_ATTRIBUTE_READONLY
FILE_ATTRIBUTE_SYSTEM
FILE_ATTRIBUTE_TEMPORARY
Еще можно глянуть функцию:
Код:
GetFileAttributes();
Будь проще и люди к тебе потянутся

Последний раз редактировалось spamer; 02.09.2010 в 17:00.
spamer вне форума Ответить с цитированием
Старый 02.09.2010, 17:05   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Предлагаю попробовать:
Код:
#include <WinBase.h>
...
if (fileinfo->attrib && FILE_ATTRIBUTE_READONLY)
		{
			//
		}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.09.2010, 17:53   #6
Alena-b-v
Пользователь
 
Регистрация: 28.05.2010
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Предлагаю попробовать:
Код:
#include <WinBase.h>
...
if (fileinfo->attrib && FILE_ATTRIBUTE_READONLY)
		{
			//
		}
Не работает Выводит 180 ошибок
Alena-b-v вне форума Ответить с цитированием
Старый 02.09.2010, 20:31   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не силён в Си, поэтому, возможно напишу глупость..

но всё же попытаюсь помочь..

а так пробовали?
Код:
if ((fileinfo->attrib && FILE_ATTRIBUTE_READONLY) != 0)
		{
			//
		}
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.09.2010, 20:37   #8
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

А так:
Код:
if ((fileinfo->attrib & FILE_ATTRIBUTE_READONLY) != 0)
с одним амперсандом
Carbon вне форума Ответить с цитированием
Старый 03.09.2010, 09:51   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
с одним амперсандом
Тьфу ты... Виноват. Конечно же один нужен
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление файла Яр|/||< (^_^) Общие вопросы Delphi 8 18.08.2009 09:05
Удаление из файла M1ham Общие вопросы C/C++ 1 31.05.2009 02:45
Удаление из файла Шурик Общие вопросы Delphi 4 30.05.2009 23:08
Удаление файла mopozoff Общие вопросы Delphi 1 13.06.2008 21:25
Удаление файла Македонский Общие вопросы Delphi 5 06.09.2007 11:46