Меню

Delphi ошибка доступа к файлу

0 / 0 / 0

Регистрация: 24.07.2014

Сообщений: 9

1

17.08.2014, 13:06. Показов 19600. Ответов 11


У меня выбрасывает ошибку в Delphi… Переустановка не помогла, что делать?

Миниатюры

Delphi 2010: "Процесс не может получить доступ к файлу, так как этот файл занят другим процессом"
 

Delphi 2010: "Процесс не может получить доступ к файлу, так как этот файл занят другим процессом"
 

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

17.08.2014, 13:06

11

Эксперт Pascal/Delphi

4880 / 2753 / 848

Регистрация: 04.10.2012

Сообщений: 10,037

17.08.2014, 15:55

2

Цитата
Сообщение от SnowLotus
Посмотреть сообщение

У меня выбрасывает ошибку в Delphi

когда?



0



Пишу на Delphi…иногда

1422 / 1277 / 286

Регистрация: 03.12.2012

Сообщений: 3,914

Записей в блоге: 5

17.08.2014, 16:38

3

запускайте Delphi от имени администратора



0



0 / 0 / 0

Регистрация: 24.07.2014

Сообщений: 9

17.08.2014, 20:32

 [ТС]

4

не помогло

Добавлено через 22 секунды
Ошибка при запуске…



0



Эксперт Pascal/Delphi

4880 / 2753 / 848

Регистрация: 04.10.2012

Сообщений: 10,037

17.08.2014, 20:53

5

Цитата
Сообщение от SnowLotus
Посмотреть сообщение

Ошибка при запуске

эта проблема связана с ОС, а не со средой, точнее с обновлениями. В Delphi 2007-2010 эти обновления блокируют доступ к файлу «EditorLineEnds.ttr».
1. Удалите обновления KB2982791, KB2970228,
2 .Перезагрузите машину,
3. Загрузитесь в Save Mode и удалите этот файл.



1



0 / 0 / 0

Регистрация: 24.07.2014

Сообщений: 9

17.08.2014, 21:16

 [ТС]

6

Удалите обновления KB2982791, KB2970228, Как??? Что это??? (простите ламера)



0



2 / 2 / 0

Регистрация: 05.08.2013

Сообщений: 24

17.08.2014, 21:44

7

Удалите обновления KB2982791, KB2970228, Как??? Что это??? (простите ламера)

Это обновления Windows. Удалить можно так -Панель управления-Центр обновления Windows- установленные обновления.



1



Эксперт Pascal/Delphi

4880 / 2753 / 848

Регистрация: 04.10.2012

Сообщений: 10,037

17.08.2014, 21:46

8

Цитата
Сообщение от SnowLotus
Посмотреть сообщение

Как??? Что это???

Так



2



1 / 1 / 0

Регистрация: 14.07.2014

Сообщений: 31

16.10.2014, 10:16

9

эта же ошибка Delphi 2007 error: “Cannot create file C:Users%Username%AppDataLocalTempEditorLineE nds.ttr” возникла у меня на win8.1×64
решил я ее прочитав вот это: http://www.danielmagin.de/blog… 2007-2010/ — иностранный ресурс, возможно вам потребуется переводчик
и установив вот этот фикс: http://andy.jgknet.de/blog/ide-tools/ide-fix-pack/ — иностранный ресурс, возможно вам потребуется переводчик



1



Galiahmetov

19.10.2014, 16:06

10

Можно решить эту проблему через запуск Delphi 2010
через следующий пакетный файл:

Windows Batch file
1
2
3
4
5
@echo off
cd C:UsersUSERNAMEAppDataLocalTemp
del EditorLineEnds.tt*
ren EditorLineEnds.ttr EditorLineEnds.tt%time:~3,2%%time:~6,2%
start /D "C:Program FilesEmbarcaderoRAD Studio7.0bin" bds.exe

Здесь USERNAME замените на свой.
Windows не позволяет удалить файл EditorLineEnds.ttr,
но разрешает его переименовать. При очередном запуске Delphi
этот файл будет переименован в EditorLineEnds.ttMMCC,
MMCC — это минуты и секунды текущего времени.
То есть появится новый файл, например EditorLineEnds.tt2058.
При каждом новом запуске Delphi будет появляться новый файл
EditorLineEnds.ttMMCC, а также файл EditorLineEnds.ttr, при этом
Windows не позволит удалить ни один из них. Конечно таких
файлов EditorLineEnds.ttMMCC может накопиться много (равно
количеству запусков Delphi), но после перезагрузки Windows
все файлы EditorLineEnds.ttMMCC будут свободны и можно
будет их удалить ( 3-я строка пакетного файла: del EditorLineEnds.tt*).

6 / 6 / 0

Регистрация: 21.07.2012

Сообщений: 144

09.03.2016, 16:56

11

Для решения проблемы в IDE Dephi 2010 нужно скачать это расширение по этой ссылке.
http://andy.jgknet.de/blog/ide-tools/ide-fix-pack/
IDE Fix Pack 5.94 (unsupported). У меня теперь работает отлично и ничего не вылезает, никаких окон.



0



2 / 2 / 0

Регистрация: 02.07.2018

Сообщений: 10

06.02.2019, 15:08

12

murfik не помогло. Замучала эта ошибка. Еще и глюк приключился — расширило все мои компоненты и размер шрифтов.
Панели вверху вообще перемешало.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

06.02.2019, 15:08

Помогаю со студенческими работами здесь

Ошибка: «Процесс не может получить доступ к файлу, так как этот файл используется другим процессом»
Здравствуйте! Я написал код кнопки сохранитьToolStripMenuItem, у меня в коде вылезает ошибка:…

Процесс не может получить доступ к файлу «C:ProSettingNameFunction.txt», так как этот файл используется другим процессом
Помогите, пожалуйста, не могу понять в чем причина.
using System;
using…

IO Exception «Процесс не может получить доступ к файлу, т.к. этот файл используется другим процессом»
Здравствуйте, есть код

private void t_Tick(object sender, EventArgs e)
{

Процесс не может получить доступ к файлу, так как этот файл используется другим процессом
Возникла такая проблема ,что после отправки файла на почту он не может удалиться.В результате чего…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

12

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    Пожалуйста, выделяйте текст программы тегом [сode=pas] … [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.


    Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
    1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
    2. Как «свернуть» программу в трей.
    3. Как «скрыться» от Ctrl + Alt + Del (заблокировать их и т.п.)
    4. Как прочитать список файлов, поддиректорий в директории?
    5. Как запустить программу/файл?
    … (продолжение следует) …


    Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
    Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


    Внимание
    Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
    Повторная попытка — 60 дней. Последующие попытки бан.
    Мат в разделе — бан на три месяца…

    >
    ошибка доступа к файлу
    , или как закрыть файл принудительно?

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,
    27.01.08, 02:08

      Junior

      *

      Рейтинг (т): 1

      Пытаюсь сохранить значение TStringList в файл с помощью TStringlist.SaveToFile()

      Но иногда вылетает ошибка доступа к файлу — пишет что файл уже открыт другим процессом. Т.е. иногда все работает, а иногда нет :(

      Как тогда принудительно закрыть файл, перед сохранением?

      P.S. С этим файлом я работаю только через TStringList.SaveToFile() и TWebBrowser.Navigate().

      Master

      ViktorXP



      Сообщ.
      #2

      ,
      27.01.08, 06:43

        ExpandedWrap disabled

          try

             MyStringlist.SaveToFile(‘кудато в небытие’);

          except

             ShowMessage(‘Закрой файл, а то глаз выколю!!’);

             // тут можна сказать левой процедуре чобы та закрыла свой доступ и дала дорогу молодым)))

             // а потом вызвать процедуру повтора

          end;

        Добавлено 27.01.08, 06:45
        просто закрыть файл не зная хендл трудновато будет)))


        tyoma_first



        Сообщ.
        #3

        ,
        27.01.08, 12:28

          Junior

          *

          Рейтинг (т): 1

          :whistle: Я именно так и делаю. Меня как раз интересует момент

          ExpandedWrap disabled

            // тут можна сказать левой процедуре чобы та закрыла свой доступ и дала дорогу молодым)))

            // а потом вызвать процедуру повтора

          Какую процедуру использовать или как написать свою?

          Напомню что я с этим файлом работаю только с помощью TStringList.SaveToFile() и TWebBrowser.Navigate(). Может быть TWebBrowser держит файл открытым? Если да — то как ему сказать что файлы закрывать надо?..

          Master

          ViktorXP



          Сообщ.
          #4

          ,
          27.01.08, 17:35

            Ну веб браузер не использует постоянно страничку
            попробуй добавить какойто флаг и перед загрузкой в вебраузер ставить его в истину а в событии OnDocumentComplete ставить его в лож
            а уже перед сохранением из TStringList проверять

            илиже перед сохранением зделать
            WebBrowser1.Stop;
            чтобы он прекратил загружать страничку


            tyoma_first



            Сообщ.
            #5

            ,
            01.02.08, 22:27

              Junior

              *

              Рейтинг (т): 1

              Цитата ViktorXP @ 27.01.08, 17:35

              илиже перед сохранением зделать
              WebBrowser1.Stop;
              чтобы он прекратил загружать страничку

              делал — не помогает :wall:


              simsergey



              Сообщ.
              #6

              ,
              02.02.08, 09:46

                Цитата ViktorXP @ 27.01.08, 06:43

                ShowMessage(‘Закрой файл, а то глаз выколю!!’);

                Гениально! Надо себе в прогу засунуть :D

                Master

                ViktorXP



                Сообщ.
                #7

                ,
                03.02.08, 08:12

                  tyoma_first ну тада показывай весь исходник
                  походу у тебя еще чтото файл ковыряет


                  tyoma_first



                  Сообщ.
                  #8

                  ,
                  03.02.08, 19:18

                    Junior

                    *

                    Рейтинг (т): 1

                    Нее.. исходник там очень большой (бывший дипломный проект :) ). Так что даже если выложу — придется много разбираться :)
                    Тем не менее спасибо за советы, я нашел решение другим путем (загружаю в webbrowser напрямую, без сохранения в файл).

                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

                    0 пользователей:

                    • Предыдущая тема
                    • Delphi: Общие вопросы
                    • Следующая тема

                    Рейтинг@Mail.ru

                    [ Script execution time: 0,0934 ]   [ 16 queries used ]   [ Generated: 28.01.23, 18:02 GMT ]  

                    Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
                    Вам необходимо обновить браузер или попробовать использовать другой.

                    • Главная

                    • Форумы

                    • Программирование и Дизайн

                    • Языки программирования

                    • Delphi

                    Delphi РЕШЕНИЕ: «EditorLineEnds.ttr». Этот файл занят другим процессом…


                    • Автор темы
                      donvard

                    • Дата начала
                      27 Апр 2016

                    Статус
                    В этой теме нельзя размещать новые ответы.

                    donvard

                    Дней с нами
                    2.865
                    Розыгрыши
                    1
                    Сообщения
                    710
                    Репутация
                    +/-

                    247

                    Реакции
                    1.132
                    Telegram
                    donvardix


                    • 27 Апр 2016

                    • #1

                    У многих после второго запуска Delphi вылетала такая ошибка:
                    Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.

                    111.jpg

                    И приходилось перезагружать компьютер чтобы эта ошибка исчезла

                    Эта проблема легко решается фиксом

                    Ссылка на Fix: http://www.delphifeeds.com/go/s/125634

                    fivemorning

                    Дней с нами
                    3.340
                    Розыгрыши
                    1
                    Сообщения
                    788
                    Репутация
                    +/-

                    92

                    Реакции
                    771


                    • 14 Июн 2016

                    • #3

                    Пожалуйста, имейте в виду, если хотите сотрудничать с данным человеком, он заблокирован на нашем форуме.
                    Статус
                    В этой теме нельзя размещать новые ответы.

                    • Главная

                    • Форумы

                    • Программирование и Дизайн

                    • Языки программирования

                    • Delphi

                    • Mipped.com Milk
                    • Russian (RU)
                    • Обратная связь
                    • Условия и правила
                    • Политика конфиденциальности
                    • Помощь
                    • Главная
                    • RSS

                    It is not AssignFile() that fails, but your call to Rewrite() on a file with the Hidden attribute set. Following explains it:

                    Typically you call Rewrite(F) in order to erase the file and write new data to it with subsequent Write(F, ...) or WriteLn(F, ...) calls.

                    From docs (System.Rewrite):

                    If an external file with the same name already exists, it is deleted
                    and a new empty file is created in its place.

                    There is no problem opening the file for writing with the Append() command.

                    (Based on above I drew the conclusion that it is the deletion that fails with the Access denied message. That was cutting the corners too much.)


                    Beaten by comments I traced through the code and compared actual code with MSDN documentation for CreateFile:

                    Actual code:

                    // if mode is fmOutput (as it is for Rewrite)
                    OpenMode = GENERIC_WRITE
                    Flags = CREATE_ALWAYS
                    // ...
                    Temp := CreateFile(t.Name, OpenMode, FILE_SHARE_READ, nil, Flags, FILE_ATTRIBUTE_NORMAL, 0);
                    

                    And documentation:

                    If CREATE_ALWAYS and FILE_ATTRIBUTE_NORMAL are specified, CreateFile
                    fails and sets the last error to ERROR_ACCESS_DENIED if the file
                    exists and has the FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM
                    attribute.

                    Calling Rewrite() on a existing file with the hidden attribute fails always.

                    It is not AssignFile() that fails, but your call to Rewrite() on a file with the Hidden attribute set. Following explains it:

                    Typically you call Rewrite(F) in order to erase the file and write new data to it with subsequent Write(F, ...) or WriteLn(F, ...) calls.

                    From docs (System.Rewrite):

                    If an external file with the same name already exists, it is deleted
                    and a new empty file is created in its place.

                    There is no problem opening the file for writing with the Append() command.

                    (Based on above I drew the conclusion that it is the deletion that fails with the Access denied message. That was cutting the corners too much.)


                    Beaten by comments I traced through the code and compared actual code with MSDN documentation for CreateFile:

                    Actual code:

                    // if mode is fmOutput (as it is for Rewrite)
                    OpenMode = GENERIC_WRITE
                    Flags = CREATE_ALWAYS
                    // ...
                    Temp := CreateFile(t.Name, OpenMode, FILE_SHARE_READ, nil, Flags, FILE_ATTRIBUTE_NORMAL, 0);
                    

                    And documentation:

                    If CREATE_ALWAYS and FILE_ATTRIBUTE_NORMAL are specified, CreateFile
                    fails and sets the last error to ERROR_ACCESS_DENIED if the file
                    exists and has the FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM
                    attribute.

                    Calling Rewrite() on a existing file with the hidden attribute fails always.

                     
                    Gloomer ©
                     
                    (2006-09-24 21:13)
                    [0]

                    В строке
                    Stream := TFileStream.Create(FileName+fDLog, fmOpenRead);
                    вылетает ошибка «Процесс не может получить доступ к файлу, т.к. файл занят другим процессом»
                    На что надо заменить fmOpenRead ?


                     
                    Ketmar ©
                     
                    (2006-09-24 21:14)
                    [1]

                    добавить ro fmShareDenyWrite, например. или почитать, наконец, справку…


                     
                    Gloomer ©
                     
                    (2006-09-24 21:20)
                    [2]

                    Изначально так и было.
                    Точнее, использовалось TStrings.LoadFromFile, где так и описано
                    Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
                    Но это не решает проблемы.
                    При этом файл прекрасно открывается другими программами


                     
                    Правильный Вася
                     
                    (2006-09-24 21:25)
                    [3]

                    >>> файл прекрасно открывается другими программами
                    они его и держат???


                     
                    Gloomer ©
                     
                    (2006-09-24 21:33)
                    [4]

                    Нет — не они.
                    Процесс, который держит — известен.
                    При этом при открытии тем же блокнотом процесс уже запущен и использует нужный файл и блокнот его открывает.


                     
                    Ketmar ©
                     
                    (2006-09-24 22:25)
                    [5]

                    fmShareDenyNone


                     
                    Gloomer ©
                     
                    (2006-09-24 23:12)
                    [6]

                    2 Ketmar
                    Оно самое — спасибо


                     
                    Ketmar ©
                     
                    (2006-09-24 23:13)
                    [7]

                    >[6] Gloomer(c) 24-Sep-2006, 23:12
                    >2 Ketmar
                    >Оно самое — спасибо
                    только учти — это опасно. мало ли, что там, в файле, поменяют, пока ты его читаешь.


                     
                    ProgRAMmer Dimonych
                     
                    (2006-09-24 23:38)
                    [8]

                    Есть ещё TMemoryStream с методом LoadFromFile. Читаем, меняем всё, что душе угодно, вызываем SaveToFile и по фигу, кто там что поменял за время работы.


                     
                    Ketmar ©
                     
                    (2006-09-24 23:52)
                    [9]

                    >[8] ProgRAMmer Dimonych 24-Sep-2006, 23:38
                    >и по фигу, кто там что поменял за
                    >время работы.
                    особенно, если это файл со структурой и данными, например. закешированый программой. ей будет очень удивительно.


                    Временами при работе с файлами в языке Delphi попытка открыть файл завершается неудачным образом и вызывает ошибку времени выполнения данной программы. Причинами ошибки открытия файлов Delphi могут быть следующие факторы.

                    К примеру, программа пытается открыть файл, расположенный на гибком диске, которой еще не готов к работе (не закрыт механизм дискового накопителя, либо диск отсутствует в накопителе).

                    Второй причиной может быть ситуация, когда открываемый в режиме добавления файл отсутствует (то есть, нет файла – и потому добавлять некуда). В процессе запуска программы из Delphi при возникновении ошибки в момент открытия файла появляется исключение, и на дисплее ПК высвечивается специальное диалоговое окно с сообщением об ошибке открытия файла:

                    Ошибки открытия файлов Delphi

                    Если запуск программы проводится из системы Windows, то внешний вид окна с сообщением, сигнализирующем о возникновении ошибки при открытии файла, представится следующим образом

                    Ошибки открытия файлов Delphi

                    Для того, чтобы программа самостоятельно контролировала результат исполнения операции открытия файла, нужно провести проверку значения функции IOResult (что означает результат ввода/вывода: Input-Output – ввод-вывод, а Result — результат). Функция IOResult принимает значение 0 в случае успешного завершения операции ввода/вывода, иначе возникает код ошибки (не 0).

                    Для обеспечения возможности проверки программой результата выполнения инструкций ввода/вывода следует разрешить программе это делать. Поэтому перед инструкцией, осуществляющей вызов процедуры открытия файла, необходимо указать директиву компилятору – строку {$I-} для запрета автоматической обработки возможных ошибок ввода/вывода.

                    Данная директива как бы сигнализирует компилятору, что программа сама будет осуществлять контроль возможных ошибок. Следом за инструкцией открытия файла не забудьте указать директиву {$I+} для восстановления автоматической обработки возможных ошибок ввода/вывода.

                    На рис. ниже представим блок-схему алгоритма, реализующего открытие файла для добавления, которое обеспечит создание файла ( и в результате устранит ошибку, возникающую при возможности открытия несуществующего файла) в том случае, если открываемый для добавления файл отсутствует на диске.

                    Ошибки открытия файлов Delphi

                    Предложим фрагмент программы, который реализует вышеприведенный алгоритм действий.

                     . . .
                    AssignFile(fn,filename);
                    {$I-}
                    Append(fn) // открываем файл для добавления  в него информации
                    {$I+}
                    if IOResult<> 0 // ошибка открытия  файла then
                    Rewrite(fn); // открыть файл для записи
                    // здесь открыт существующий или новый файл
                    . . . 

                    Перед окончательным завершением своей работы программой должны быть закрыты все открытые файлы. Чтобы это осуществить в языке Delphi, нужно сделать вызов процедуры close. Данная процедура содержит всего лишь один параметр – наименование файловой переменной.

                    Пример

                    откуда fn обозначает имя файловой переменной. Итак, мы разобрали некоторые ошибки открытия файлов Delphi. Двигаемся дальше.


                    Похожие записи:

                    • Процедуры Delphi
                    • Функции Delphi
                    • Операция присваивания Delphi
                    • Выражения Delphi
                    • Назначение файла Delphi

                    0 0 голоса
                    Рейтинг статьи
                    Подписаться
                    Уведомить о
                    guest

                    0 комментариев
                    Старые
                    Новые Популярные
                    Межтекстовые Отзывы
                    Посмотреть все комментарии

                    А вот еще интересные материалы:

                  • Яшка сломя голову остановился исправьте ошибки
                  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
                  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
                  • Delphi ошибка unsatisfied forward or external declaration
                  • Delphi ошибка stack overflow