Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Удаление файла


Страницы:   1 2 3

DimOk ©   (2007-10-25 16:06:00) 

Добрый день всем. Возникла сложность с "программным" удалением файлов. Есть некая программа, которая читает данные из файла, после выполнения некоторых действий эта программа должна его перенести в другой каталог. (чтение данных проиходит из файла формата *.dbf)

TableDoc.SQL.Text := 'select * from ' + FileName;
    try
     TableDoc.Active := True;
    except
     ShowMessage('Файл ' + FileName + ' поврежден или имеет неизвестный формат!');
    end;
    if TableDoc.Active = True then begin
    ..........
    end;
// Собственно та часть которая должна удалять файл
    TableDoc.Active := False;
    CopyFile(OldFile,NewFile,True);
    if DeleteFile(OldFile) then begin
       MessageDlg('Файла удален', mtInformation, [mbOk], 0);
    end;
Файл копируется но не удаляется, пытался ставить на него разрешения типа: Всем-Всё но результат нулевой. Подскажите пожалуйсто как можно реализовать удаление файла.


DimOk   (2007-10-25 17:43:00) [21]


> Ну и отсюда вывод какой должен быть?

У меня был один вариант, но он не прокатывает:
TableDoc.Active := False;
TableDoc.Free;
CopyFile(OldFile,NewFile,True);
if DeleteFile(OldFile) then begin
 MessageDlg('Файла успешно удален', mtInformation, [mbOk], 0);
end;


Dennis I. Komarov   (2007-10-25 17:41:00) [22]

> [24] DimOk ©   (25.10.07 17:34)

Ну и отсюда вывод какой должен быть?


DimOk   (2007-10-25 17:34:00) [23]


> Да кто тебе сказал, что TADOQuery работает прям вот с файлом?
>  

Я не говорю что напрямую берет и открывает файл на чтение или на запись, кроме этого FileName в программе ни где больше не используется, кроме как в формирование строки SQL... кроме того сошлюсь на ... [1]


DimOk   (2007-10-25 17:31:00) [24]

Вообщето ешо держит TADOQuery потомучто я до этого делал просто MoveFile(OldFile, NewFile) и результат был тот же - нулевой.


Dennis I. Komarov   (2007-10-25 17:31:00) [25]

> [21] DimOk ©   (25.10.07 17:25)

Да кто тебе сказал, что TADOQuery работает прям вот с файлом? :)


DimOk   (2007-10-25 17:25:00) [26]


> Файл занят, чего еще искать-то?

Я не пойму чем он занят TADOQuery его держит или CopyFile(OldFile,NewFile,True) .....?
Как его "освободить" тогда..... :(


Reindeer Moss Eater   (2007-10-25 17:23:00) [27]

Файл занят, чего еще искать-то?


DimOk   (2007-10-25 17:23:00) [28]


> Про то, о чем ты спрашивал тебе уже ответили.

Наверное ответ, где то очень глубоко спрятан... :) Прям шарада какая то... буду искать... Спасибо.


Reindeer Moss Eater   (2007-10-25 17:19:00) [29]

Про то, о чем ты спрашивал тебе уже ответили.


DimOk   (2007-10-25 17:18:00) [30]


> Гы.
> А если не поврежден и имеет известный формат, но уже открыт
> эксклюзивно? Или если нет такого файла?

Ну это уже........ Разве это относиться к тому что я спрашиваю... :)


Reindeer Moss Eater   (2007-10-25 17:15:00) [31]

try
TableDoc.Active := True;
except
ShowMessage('Файл ' + FileName + ' поврежден или имеет неизвестный формат!');
end;

Гы.
А если не поврежден и имеет известный формат, но уже открыт эксклюзивно? Или если нет такого файла?


DimOk   (2007-10-25 17:11:00) [32]


> и ты конечно же этому не веришь

а куда деваться то....


Reindeer Moss Eater   (2007-10-25 17:06:00) [33]

и ты конечно же этому не веришь


DimOk   (2007-10-25 17:05:00) [34]


> OldFile = 'иЗQ'#2#1

Это я исправил, а Win32Check(Windows.DeleteFile(OldFile)) показывает следующее:
"Процесс не может получить доступ к файлу, так как этот файл занят другим процессом"


DimOk   (2007-10-25 16:48:00) [35]


> и как оно выглядит?


> осталось сделать ShowMessage(OldFile)

Даа.... Действительно лажа какая то после:

tmp_str := cDir + FileName;
OldFile := PChar(tmp_str);

OldFile = 'иЗQ'#2#1     :)


Reindeer Moss Eater   (2007-10-25 16:45:00) [36]

осталось сделать ShowMessage(OldFile)


clickmaker   (2007-10-25 16:45:00) [37]


> Синтаксическая ошибка в имени файла

и как оно выглядит?


DimOk   (2007-10-25 16:44:00) [38]


> Win32Check(Windows.DeleteFile(OldFile))

"Синтаксическая ошибка в имени файла, имени папки или метке тома"


clickmaker   (2007-10-25 16:39:00) [39]


> Ни чего не показывает

быть не может
Win32Check(Windows.DeleteFile(OldFile)) что показывает?


Reindeer Moss Eater   (2007-10-25 16:39:00) [40]

Ни чего не показывает

не показывает?
тогда может хоть рассказывает?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо