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

Вниз

Не могу понять в чем дело, помогите! Копирование файла из сети .   Найти похожие ветки 

 
MikeFW   (2003-01-29 15:17) [0]

получаю два параметра из командной строки
ParamStr(1) = "I:\ARCHIV\MIKE\" (это сетевой диск)
ParamStr(2) = "d"

1-ый вариант
Path := ParamStr(1) + ParamStr(2) + "\" + Mac + ".zip";
не работает - файл не копируется

2-ой вариант
Path := "I:\ARCHIV\MIKE\" + "d\" + Mac + ".zip";
работает

при проверки Writeln(Path); выдается одна и таже строка, так что здесь ошибки не может быть

Attr := faArchive;
FindFirst(Path,Attr,F);
If F.Name <> "" then begin
Writeln(F.Name); // файл находится в двух вариантах
Writeln(IntToStr(CopyFiles( Path, "D:\", True, True )));
в 1-ом выдает - 1026, во 2-ом - 0

что интересно пока я задавал локальные адреса, например диск С:\, то 1-ый вариант тоже срабатывал. Не пойму в чем дело?


// Функция переноса файлов
function CopyFiles( Src : string; Dest : string; Move : Boolean; AutoRename : Boolean ) : Integer;
var
SHFileOpStruct : TSHFileOpStruct;
begin
with SHFileOpStruct do
begin
wFunc := FO_COPY;
if Move then wFunc := FO_MOVE;
pFrom := Pointer( Src );
pTo := PChar( Dest );
fFlags := 0;
if AutoRename then fFlags := FOF_RENAMEONCOLLISION;
fAnyOperationsAborted := False;
hNameMappings := nil;
lpszProgressTitle := nil;
end;
Result := SHFileOperation( SHFileOpStruct );
end;


 
NickBat ©   (2003-01-29 15:52) [1]

А двоеточие поставить после имени локального диска?

"d\"
"d:\"
Причем во втором варианте тоже.


 
MikeFW   (2003-01-29 15:57) [2]

причем тут двоеточие?
это же не название диска, а папка
вот как выглядит строка "I:\ARCHIV\MIKE\d\903D4343.zip";
и главное файл то и в первом и во втором варианте находится,
но вот копирование в первом не проходит ...


 
han_malign ©   (2003-01-29 16:16) [3]

pFrom := Pointer( Src );
- а Mac - у тебя наверняка тоже константа: во втором случае передается указатель на строковую контанту, а в первом компилятор при оптимизации не видя обращения к строке - удаляет ее до использования в ShFileOperation... PChar ставь.
З.Ы. Вроде так быть не должно, но других обяснений нет...


 
MikeFW   (2003-01-29 16:26) [4]

где ставить PChar?

Path := PChar(ParamStr(1)) + PChar(ParamStr(2)) + "\" + Mac + ".zip";

так?


 
MikeFW   (2003-01-29 16:52) [5]

да, точно проблема в pFrom := Pointer( Src );
если я пишу

Src := "I:\ARCHIV\MIKE\903D4343.zip";
pFrom := Pointer( Src );

все ок!

а если
получаю два параметра из командной строки
ParamStr(1) = "I:\ARCHIV\MIKE\" (это сетевой диск)

Src := ParamStr(1) + "\903D4343.zip.zip";
pFrom := Pointer( Src );

все плохо ........ (((

как тут быть?





 
MikeFW   (2003-01-29 17:11) [6]

кстати pFrom := Pointer( PChar(Src) );

тоже не помогает ....... (((((



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
1-15624
Smok_er
2003-01-23 21:45
2003.02.06
И снова MDI


1-15633
Tolanay
2003-01-27 12:14
2003.02.06
тип Cardinal


7-15973
BALU1111
2002-11-25 12:41
2003.02.06
TaskManger


7-15976
dimich1978
2002-11-29 11:32
2003.02.06
Мастера плиз, определение загруженности процессора


3-15442
Stenkz
2003-01-20 09:45
2003.02.06
Перемещение по визуальным компонентам при нажатии клавиши