![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Удаление файла
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]Ни чего не показывает
не показывает?
тогда может хоть рассказывает?