Главная страница
    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.45 MB
Время: 0.01 c
3-15499
Higs
2003-01-11 18:03
2003.02.06
Компонента SQLDirect


7-15959
Dracula
2002-12-02 11:42
2003.02.06
Серийный номер BIOS


3-15505
viper
2003-01-20 17:16
2003.02.06
Глюк в FastReports


1-15729
Anton
2003-01-27 17:25
2003.02.06
Как сделать простенький невизуальный таймер


7-15962
Dracula
2002-12-02 12:39
2003.02.06
Серийный номер MB





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский