Текущий архив: 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.45 MB
Время: 0.009 c