Главная страница
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.014 c
6-15786
Georg
2002-12-13 14:42
2003.02.06
CGI-приложения


3-15452
Valeris
2003-01-17 19:36
2003.02.06
Что не так?


3-15516
b_baranov
2003-01-20 19:45
2003.02.06
Create table in SP


3-15449
mate
2003-01-20 11:15
2003.02.06
MSSQL и Paradox


1-15673
Tsr
2003-01-20 21:07
2003.02.06
: Unsafe type TBookmark