Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Почему-то возникает File Access Denied   Найти похожие ветки 

 
zif   (2004-04-04 13:10) [0]

В определенной папке лежит файл, порезанный на несколько кусков. Его нужно собрать, т.е. побайтно склеить все части.

Вот мой код, который выдает ошибку File Access Denied:

var
mask: String;
SR: TSearchRec;
i: integer;
Buf: array of Byte;
FI, FO: File;

begin
mask := Edit1.Text + "*";
if mask = "" then mask := "*.*";
memo1.lines.clear;

if FindFirst(mask, faAnyFile, SR)=0 then

AssignFile(FI, Edit1.Text + SR.Name + "final");
Rewrite(FI, 1);

repeat
 begin
  memo1.Lines.add(SR.Name);

 end
until FindNext(SR)<>0;
FindClose(SR);

for i:=1 to memo1.lines.count do begin
  AssignFile(FO, Edit1.Text + memo1.lines[i]);
  Reset(FO, 1); //строка, где выдается ошибка!!!
  SetLength(Buf, FileSize(FO));
  BlockRead(FO, Buf, FileSize(FO));
  BlockWrite(FI, Buf, FileSize(FO));
  Buf := NIL;
  CloseFile(FO);
                                 end;
CloseFile(FI);

Ну откуда здесь может взяться эта ошибка?!!


 
Cobalt ©   (2004-04-04 14:28) [1]

А что находится в  
Edit1.Text + memo1.lines[i]?


 
zif   (2004-04-04 14:45) [2]

Сорри...
Список названий файлов, которые программе нужно объеденить в один файл.


 
Anatoly Podgoretsky ©   (2004-04-04 14:46) [3]

Об этом мы предполалаем, но что говорит отладчик


 
Unknown user ©   (2004-04-04 15:39) [4]

2 zif. Код ужасный. Проверь что возвращает Edit1.Text + memo1.lines[i]. Используй TFileStream. Не выделяй под Buf сразу столько памяти, ведь файлы бывают и по 1Гиг, читай и пиши блоками фиксированной длины, для выделения памяти лучше использовать GetMem. Используй конструкции try .. finally везде где получаешь дескрипторы либо выделяешь память. Все.


 
Camypau   (2004-04-04 20:50) [5]

а доступ к файлу есть?
попробуй его открыть в фаре и посмотреть или поставь
FileMode := 0; // открыть только в режиме доступа на чтение
и лучше уж тут писать просто Reset(FO);
если пишется что Access Denied значит имя файла таки верное

p.s.
mask := Edit1.Text + "*";
if mask = "" then mask := "*.*;
Гениальный код :)



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
3-1079955665
Voland777
2004-03-22 14:41
2004.04.18
.bmp --> image


14-1080429285
VID
2004-03-28 03:14
2004.04.18
Какие стадии мастерства существуют ?


7-1077192314
turonix
2004-02-19 15:05
2004.04.18
Получение handle Edit-a, на загруженной web-страницы


1-1080938683
neVIP
2004-04-03 00:44
2004.04.18
Другой Calendar


1-1080473406
Step[B.M.]
2004-03-28 15:30
2004.04.18
Не получается сграбить в Bitmap визуальный компонент - усложняем