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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2009, 21:17   #1
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию Доступ к файлам

Добрый день.
Как получить доступ к файлу который занят другим процессом? (винда ошибку выдает)

Последний раз редактировалось Gerzs; 06.10.2009 в 21:30.
Gerzs вне форума Ответить с цитированием
Старый 06.10.2009, 21:19   #2
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от Gerzs Посмотреть сообщение
Добрый день.
Как получить доступ к фалу который занят другим процессом? (винда ошибку выдает)
В этом случае я думаю надо воспользоваться фалоиммитатором

Извините.. не удержался..
Dux вне форума Ответить с цитированием
Старый 06.10.2009, 21:32   #3
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию


Dux а по теме есть что сказать?
Gerzs вне форума Ответить с цитированием
Старый 06.10.2009, 21:48   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Как получить доступ к файлу который занят другим процессом?
- а что вы хотите с ним делать?
- если вопрос в удалении, то достаточно разблокировать хэндл... кстати есть в сети готовые утилиты

p.s.: подсказать какая или сами найдете?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 06.10.2009, 21:59   #5
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию

raxp, нужно его прочесть
Gerzs вне форума Ответить с цитированием
Старый 06.10.2009, 22:11   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

вот решение вашей проблемы...
Код:
F := TFileStream.Create(Filee, fmShareDenyNone);
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 06.10.2009, 22:30   #7
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию

raxp, вы кажется меня неправильно поняли. Насколько мне известно, данный код закрывает файл от редактирования. А мне надо прочитать файл, который закрыт для чтения другими программами. Или я ошибаюсь?
Gerzs вне форума Ответить с цитированием
Старый 07.10.2009, 09:13   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А мне надо прочитать файл, который закрыт для чтения другими программами.
НАсколько помню нужно продублировать хендл файла с помошью DuplicateHandle. Где-то подобное читал, но не гарантирую что прав.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.10.2009, 13:57   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
Смех

Цитата:
Сообщение от Gerzs Посмотреть сообщение
raxp, вы кажется меня неправильно поняли. Насколько мне известно, данный код закрывает файл от редактирования. А мне надо прочитать файл, который закрыт для чтения другими программами. Или я ошибаюсь?
- да нет, уважаемый, прекрасно вас понял... во-первых обратите внимание на параметры, во-вторых данная проблема обсуждалась тут http://www.sql.ru/Forum/actualthread.aspx?tid=662606
и заметьте, это первое что выдал гугль по-вашему вопросу
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 07.10.2009, 21:23   #10
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию

raxp, извините, перепутал параметры.
Если ввести данную команду в код почему-то пишет что файл не найден. В чем проблема?

Код:
begin
if FindFirst('C:\Documents and Settings\zaj\Local Settings\Application Data\Google\Chrome\User Data\Default\Cache\*', faAnyFile, SearchRec) = 0 then
  begin
   repeat
    if (SearchRec.Attr and faDirectory)=0 then
    begin
     F := TFileStream.Create('C:\Documents and Settings\zaj\Local Settings\Application Data\Google\Chrome\User Data\Default\Cache\'+ SearchRec.Name, fmShareDenyNone);
     // some code
     F.Free;
    end;
   until FindNext(SearchRec) <> 0;
   FindClose(SearchRec);
   end;
end;

Последний раз редактировалось Gerzs; 07.10.2009 в 21:26.
Gerzs вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
доступ к выборке valetik Microsoft Office Access 0 25.02.2009 09:17
Одновременный доступ lepricon БД в Delphi 3 02.12.2008 19:57
Доступ к реестру Terran Общие вопросы Delphi 1 27.03.2008 01:59
Блокировать доступ Pedro Безопасность, Шифрование 8 02.03.2008 18:59
Доступ к строке Баламут Win Api 10 21.01.2008 08:44