Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.02.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
1-15666
pl_quad
2003-01-29 18:19
2003.02.06
TCustomGrid


1-15605
eLVik
2003-01-23 09:37
2003.02.06
Alignment


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


3-15476
Serginio
2003-01-20 15:51
2003.02.06
1C на Delphi


1-15711
VLL
2003-01-27 17:54
2003.02.06
Запуск внешнего приложения





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский