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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2014, 02:16   #1
Max1548
Пользователь
 
Регистрация: 28.05.2011
Сообщений: 99
По умолчанию Открыть занятый другим процессом файл.

Скажу сразу, был в интернете и пробовал ряд решений оттуда.
Например, способ открытия файла:

Код:
function FileAnyway(Addr: string):string;
var
  nfS, fS:TFileStream;
begin
  fS := TFileStream.Create(Addr, fmShareDenyNone + fmOpenReadWrite);
  nfS := TFileStream.Create(Addr + '.tmp', fmShareDenyNone + fmOpenReadWrite);
  nfs.CopyFrom(fS, fS.Size);
  nfs.Free;
  fS.Free;
  Used[J] := Addr + '.tmp';
  J := J + 1;
  Result := Addr + '.tmp';
end;
Не открывает.

Открытие вызываю так:

Код:
    try
      if FileExists(ExpandEnvironmentString(path))
        then formData.AddFile('mf1', ExpandEnvironmentString(path), 'application/octet-stream');
    except
      str := FileAnyway(ExpandEnvironmentString(path));
      formData.AddFile('mf1', str, 'application/octet-stream');
    end;
Пробовал так же через CopyFile, была идея выбивать процесс из памяти, но заказчик не одобрил. Кстати говоря, хотелось бы также скрыть системное окно ошибки, потому что опять же портится эстетичная часть проекта.
Огромное спасибо всем заранее!
OS - [||-----------------------------------------------] забил, дойдя до драйвера памяти
Max1548 вне форума Ответить с цитированием
Старый 15.03.2014, 02:44   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от Max1548 Посмотреть сообщение
Скажу сразу, был в интернете и пробовал ряд решений оттуда.
Лучше б вы потратили своё время на что-то более полезное. Например на RTFM.
northener вне форума Ответить с цитированием
Старый 15.03.2014, 09:09   #3
Max1548
Пользователь
 
Регистрация: 28.05.2011
Сообщений: 99
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Лучше б вы потратили своё время на что-то более полезное. Например на RTFM.
Лучше бы Вы по теме ответили. Object Pascal я использую очень редко.
OS - [||-----------------------------------------------] забил, дойдя до драйвера памяти
Max1548 вне форума Ответить с цитированием
Старый 15.03.2014, 10:34   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

а это и не object pascal, это delphi
Человек_Борща вне форума Ответить с цитированием
Старый 15.03.2014, 10:55   #5
Max1548
Пользователь
 
Регистрация: 28.05.2011
Сообщений: 99
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
а это и не object pascal, это delphi
Delphi - среда разработки + фреймворк для паскаля.

Так по моему вопросу что-то будет? Или будет долго обсуждение того, что мне надо было читать и как называется ЯП?
OS - [||-----------------------------------------------] забил, дойдя до драйвера памяти
Max1548 вне форума Ответить с цитированием
Старый 15.03.2014, 11:36   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

http://www.bing.com/search?q=%D0%9E%...onversationid=
eval вне форума Ответить с цитированием
Старый 15.03.2014, 11:36   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Открытый эксклюзивно файл повторно не открыть. Только всякие хакерские штучки типа найти хендл открытого файла или прямой доступ к диску. Возможно получится и через сервис Volume Shadow Copy
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Этот файл занят другим процессом alkador Общие вопросы Delphi 5 26.06.2012 21:27
Файл занятый другим процессом Thandem Помощь студентам 0 26.09.2010 01:33
Если файл заблокирован другим процессом КаМММ Microsoft Office Excel 2 20.05.2010 00:12
Файл занят другим процессом Adonidi Общие вопросы Delphi 4 25.03.2010 21:38
Открыть занятый файл. Kukkk Общие вопросы Delphi 5 24.03.2008 18:49