Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что сучилось с правами доступа? / 14 сообщений из 14, страница 1 из 1
06.07.2015, 01:17
    #39000115
Николай II
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что сучилось с правами доступа?
Нужно было удалить картинки в папке (программно). Нашел такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
bool DeleteFiles(AnsiString DirName)
{
TSearchRec sr;
if (DirName.Length())
 {
 if (!FindFirst(DirName+"\\*.*",faAnyFile,sr))
 do
  {
  if (!(sr.Name=="." || sr.Name==".."))// это удалять не надо
   if (((sr.Attr & faDirectory) != faDirectory ) &&
   (sr.Attr != faDirectory))
	{
	DeleteFile(DirName+"\\"+sr.Name);// удаляем файл
	}
  }
 while (!FindNext(sr));// ищем опять, пока не найдем все
 FindClose(sr);
 }
return true;
}

DeleteFiles("E:\\Img\\");


Ничего не удалилось, но теперь ни в какую папку на диске Е невозможно сделать запись файлов из моих программ, пишет "Отказано в доступе" (на другие диски пишеться).
Другие программы на диск Е пишут как и раньше, а мои самописные не могут.
ВОПРОС: что я наделал, как убрать этот глобальный ReadOnly?
Пробовал свойства диска-безопасность-выставить права как на других дисках- не помогло (
-------------------------
C++ Builder 2010
Самоучка
...
Рейтинг: 0 / 0
06.07.2015, 10:01
    #39000232
Николай II
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что сучилось с правами доступа?
Неужели никто не знает?
...
Рейтинг: 0 / 0
06.07.2015, 14:10
    #39000544
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что сучилось с правами доступа?
Николай II,
попробуйте выполнить такой код на диске где у вас проблемы, и сообщите о результате

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#include <stdio.h>

...
FILE* test=fopen("test.txt","w");
fprintf(test,"Hello");
fclose(test);
...
...
Рейтинг: 0 / 0
06.07.2015, 14:58
    #39000591
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что сучилось с правами доступа?
Лучше так. Со ссылкой http://www.tutorialspoint.com/cprogramming/c_error_handling.htm
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
FILE * pf;
   int errnum;
   pf = fopen ("unexist.txt", "rb");
   if (pf == NULL)
   {
      errnum = errno;
      fprintf(stderr, "Value of errno: %d\n", errno);
      perror("Error printed by perror");
      fprintf(stderr, "Error opening file: %s\n", strerror( errnum ));
   }
   else
   {
      fclose (pf);
   }
   return 0;
...
Рейтинг: 0 / 0
06.07.2015, 16:55
    #39000735
Николай II
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что сучилось с правами доступа?
Код: plaintext
1.
2.
3.
FILE* test=fopen("E:\\test.txt","w");
fprintf(test,"Hello");
fclose(test);


Выдал First chance exception at $747FB9BC. Exception class EAccessViolation with message 'Access violation at address 32B81AF8 in module 'CC32110MT.DLL'. Read of address F831552C'. Process OriCatalogGrabbing.exe (6296)
-----------------
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
FILE * pf;
   int errnum;
   pf = fopen ("E:\\unexist.txt", "rb");
   if (pf == NULL)
   {
	   errnum = errno;
	  Form1->Caption=IntToStr(errnum);
	  perror("Error printed by perror");
	  Memo1->Text=strerror( errnum );
   }
   else
   {
	  fclose (pf);
   }


Выдало номер ошибки: 2
Текст ошибки: No such file or directory
-----------------------
Неьольшое наблюдение, может поможет: когда папка с программой на диске Д:, то пишет только на Д:, а на Е: не хочет. Когда папка с программой на диске Е:, то успешно пишет и на Е: и на Д:.
...
Рейтинг: 0 / 0
06.07.2015, 17:42
    #39000793
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что сучилось с правами доступа?
При программировании под Win бывает много чудес. Во первых надо глянуть права вызывающего.
Тоесть разобраться кто ты есть. И от имени кого ты компилишь и запускаешь. Во вторых
посмотреть права на диск E:

Консольных тулзов для этого я не помню. Надо делать много мышко-кликов ... и скриншотить ...
вобщем пускай тем кому не лень подскажут.
...
Рейтинг: 0 / 0
06.07.2015, 18:06
    #39000826
Николай II
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что сучилось с правами доступа?
Да с этого я начал!
Пробовал в консоли diskpart смотреть - НЕ включен только чтение.
Потом в свойствах диска-безопасность установил для диска владельца себя и дал все права всему что было (стоят все галки). Не помогло.
Потом еще в консоли, запущенной с правами администратора, выполнял последовательно:
takeown /f E: /r /d y
icacls E: /grant:r имя:F /t
где имя - имя учетной записи.
не помогло.
Запускал и с правами админа и без. Антивирус отключал и перезагружался.
Главное почему, если я папку с экзешником переношу на Е, то права появляются писать на этот диск Е?!
...
Рейтинг: 0 / 0
06.07.2015, 18:38
    #39000845
Николай II
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что сучилось с правами доступа?
Еще одно наблюдение. Если экзешник программы на диске Д, то не хочет писать ни на какой диск кроме Д.
Если экзешник программы на любом другом диске кроме Д, то пишет куда угодно, в т.ч. и на Е и на Д. Скорее всего проблема в диске Д заключается. Но в чем?
...
Рейтинг: 0 / 0
06.07.2015, 18:53
    #39000852
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что сучилось с правами доступа?
Посмотри dos-овские R/O, System.
...
Рейтинг: 0 / 0
06.07.2015, 19:22
    #39000868
Николай II
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что сучилось с правами доступа?
Напишите, пожалуйста, подробнее, что посмотреть, так как я ввел в Яндексе "DOS R/O" оно не может понять что я хочу от него, наверное, слишком короткий запрос.
...
Рейтинг: 0 / 0
06.07.2015, 19:43
    #39000872
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что сучилось с правами доступа?
Николай IIНапишите, пожалуйста, подробнее, что посмотреть, так как я ввел в Яндексе "DOS R/O" оно не может понять что я хочу от него, наверное, слишком короткий запрос.

Николай, это не проблемы программирования на С, это -- проблемы эксплуатации твоей операционной системы тобой.
К программированию это не относится.

Если у тебя есть вопросы по ПРОГРАММИРОВАНИЮ на С -- давай.
Если нет -- тебе нужна другой форум, по Windows.

И твои проблемы -- с записью -- скорее всего никак не связаны с твоей программой и её работой.
То, что это возникло одно после другого -- совпадение.
...
Рейтинг: 0 / 0
06.07.2015, 20:15
    #39000893
Николай II
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что сучилось с правами доступа?
Окей перейду на форум по Виндовс, спасибо всем кто уделил моему вопросу внимание!
...
Рейтинг: 0 / 0
06.07.2015, 22:50
    #39000947
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что сучилось с правами доступа?
MasterZiv, форварднём его в Windows?
...
Рейтинг: 0 / 0
07.07.2015, 13:20
    #39001389
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что сучилось с правами доступа?
mayton,

сам уйдет.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что сучилось с правами доступа? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]