Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Перенос файлов из сетевой папки в локальную службой  [new]
warkdimka
Member

Откуда:
Сообщений: 17
Службой подключаюсь к сетевому ресурсу через WNetAddConnection2, переношу из локальной папки в сетевую папку файлы(copyfile, deletfile) все хорошо, но когда наоборот хочу перенести из сетевой папки в локальную ничего не происходит. подскажите как реализовать перенос из сетевой папки
15 мар 19, 11:41    [21833492]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
goldmi45
Member

Откуда:
Сообщений: 1186
warkdimka
... ничего не происходит.

Гасишь исключение?
15 мар 19, 11:45    [21833496]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
warkdimka
Member

Откуда:
Сообщений: 17
goldmi45,
в лог пишу SysErrorMessage(GetLastError)
15 мар 19, 11:51    [21833516]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
warkdimka
Member

Откуда:
Сообщений: 17
warkdimka
goldmi45,
в лог пишу SysErrorMessage(GetLastError)
лог пустой
15 мар 19, 11:52    [21833518]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
warkdimka
Службой подключаюсь к сетевому ресурсу через WNetAddConnection2


...и она подключается?
пользователь LOCAL_SYSTEM вроде как не имеет таких прав.

warkdimka
лог пустой


Можешь попробовать OutputDebugString
https://docs.microsoft.com/en-us/sysinternals/downloads/debugview
https://stackoverflow.com/questions/11218434/how-to-view-output-of-outputdebugstring

И в любом случае промониторь файловый доступ своей службы через SysInternals Process Monitor - что она делает, где она делает, что ей Windows отвечает
15 мар 19, 12:10    [21833546]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4010
warkdimka,

Если "когда наоборот хочу перенести из сетевой папки в локальную ничего не происходит",
т.е. всё, все функции отрабатывают без ошибок и возвращают True (грубо говоря),
и файлы там точно были,
то это может означать только одно: ты стянул из сетевой шары вирусы и твой антивирус удалил их до того, как ты успел увидеть эти файлы.
15 мар 19, 12:16    [21833561]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4010
Arioch
...и она подключается?
пользователь LOCAL_SYSTEM вроде как не имеет таких прав.
Не имеет, но раз он файлы "туда" смог скопировать, то оттуда - тем более можно будет.
15 мар 19, 12:16    [21833564]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
goldmi45
Member

Откуда:
Сообщений: 1186
warkdimka
goldmi45,
в лог пишу SysErrorMessage(GetLastError)

GetLastError может затираться любым успешным действием.

К сообщению приложен файл. Размер - 39Kb
15 мар 19, 12:21    [21833580]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
warkdimka
Member

Откуда:
Сообщений: 17
Arioch,
если запускать через обычное приложение тот же самый код, то все работает: и подключается и файлы переносит
15 мар 19, 12:27    [21833584]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
warkdimka
Member

Откуда:
Сообщений: 17
YuRock
warkdimka,

Если "когда наоборот хочу перенести из сетевой папки в локальную ничего не происходит",
т.е. всё, все функции отрабатывают без ошибок и возвращают True (грубо говоря),
и файлы там точно были,
то это может означать только одно: ты стянул из сетевой шары вирусы и твой антивирус удалил их до того, как ты успел увидеть эти файлы.

у меня нет антивируса
15 мар 19, 12:33    [21833593]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
warkdimka
Member

Откуда:
Сообщений: 17
Arioch,

подключаюсь естественно под пользователем другой машины (на которой лежит расшаренная папка)
15 мар 19, 12:40    [21833604]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4010
warkdimka
YuRock
warkdimka,

Если "когда наоборот хочу перенести из сетевой папки в локальную ничего не происходит",
т.е. всё, все функции отрабатывают без ошибок и возвращают True (грубо говоря),
и файлы там точно были,
то это может означать только одно: ты стянул из сетевой шары вирусы и твой антивирус удалил их до того, как ты успел увидеть эти файлы.

у меня нет антивируса
Значит, если выполнены все перечисленные мной условия, то проблема неидентифицируема и неразрешима.
15 мар 19, 12:48    [21833618]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
warkdimka
Member

Откуда:
Сообщений: 17
YuRock,
так а почему, если запускать в приложении тот же код, все выполняется? антивирус виноват? если не знаешь - не засерай тему
15 мар 19, 13:06    [21833672]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
warkdimka
подключаюсь естественно


я про то, какой пользователь службу выполняет
15 мар 19, 13:09    [21833677]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
goldmi45
Member

Откуда:
Сообщений: 1186
warkdimka
Arioch,

подключаюсь естественно под пользователем другой машины (на которой лежит расшаренная папка)

А на локальную папку пользователь другой машины имеет доступ?

ЗЫ: код мы увидим?
15 мар 19, 13:09    [21833678]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
goldmi45
warkdimka
goldmi45,
в лог пишу SysErrorMessage(GetLastError)

GetLastError может затираться любым успешным действием.

Картинка с другого сайта.


у тебя тут вообще нет никакого Exception иначе бы была пустая строка как минимум (а точнее строка типа "ошибок нет все хорошо")

вспоминаем ,когда именно на x87 ловится состояние ошибки, однако.

a := 1/0; // или даже вообще a := 0; a := 1/a; А то начнёт компилятор сам вычислять константы....
a := a+a; // а вот теперь проверяем на предмет раньших ошибок
15 мар 19, 13:11    [21833684]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
goldmi45
ЗЫ: код мы увидим?


нафиг код, пусть свою службу через Process Monitor трасисрует, что она реально пытается с файлами делать
15 мар 19, 13:12    [21833687]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
goldmi45
Member

Откуда:
Сообщений: 1186
Arioch,

С примером согласен, кривой.
15 мар 19, 13:13    [21833690]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
goldmi45,

Вот если бы ты написал RaiseLastWin32Error(); - тогда да, тут бы ничего не было когда нет ошибки.
Но у тебя WriteLN и независимо от GetLastError он как минимум LN-то должен был написать
15 мар 19, 13:14    [21833692]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
warkdimka
Member

Откуда:
Сообщений: 17
goldmi45
warkdimka
Arioch,

подключаюсь естественно под пользователем другой машины (на которой лежит расшаренная папка)

А на локальную папку пользователь другой машины имеет доступ?
у локальной папки все права расшарены на всех пользователей.
 Attr := faAnyFile - faVolumeID - faDirectory; //подключение
 nw.dwType := RESOURCETYPE_ANY;                                  
 nw.lpLocalName := nil;
 nw.lpRemoteName := PChar(config.ReadString('Settings', 'pathnetin', '0'));
 nw.lpProvider := nil;
 Err := WNetAddConnection2(nw, PChar(config.ReadString('Settings', 'netPass', '0')), PChar(config.ReadString('Settings', 'netUser', '0')), 0);

 if FindFirst(config.ReadString('Settings', 'path', '0') + '*.xml', Attr, Sr) = 0 then //работа с каталогом (все пути указанны верно)
    repeat
      CopyFile(PChar(config.ReadString('Settings', 'path', '0') + Sr.Name), PChar(config.ReadString('Settings', 'pathnetin', '0')+Sr.Name),false);
      DeleteFile(config.ReadString('Settings', 'path', '0') + Sr.Name);
    until FindNext(Sr) <> 0;
15 мар 19, 13:21    [21833710]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
goldmi45
Member

Откуда:
Сообщений: 1186
warkdimka,

if FindFirst(config.ReadString('Settings', 'path', '0') + '*.xml', Attr, Sr) = 0 then //работа с каталогом (все пути указанны верно)
repeat
  try
  CopyFile(PChar(config.ReadString('Settings', 'path', '0') + Sr.Name), PChar(config.ReadString('Settings', 'pathnetin', '0')+Sr.Name),false);
  DeleteFile(config.ReadString('Settings', 'path', '0') + Sr.Name);
  except
    on E: Exception do
      WriteLog(E.Message);
  end;
until FindNext(Sr) <> 0; 

А если сделать так? WriteLog - это процедура записи сообщения в лог.
15 мар 19, 13:38    [21833745]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
warkdimka
CopyFile(PChar(config.ReadString('Settings', 'path', '0') + Sr.Name), PChar(config.ReadString('Settings', 'pathnetin', '0')+Sr.Name),false);
      DeleteFile(config.ReadString('Settings', 'path', '0') + Sr.Name);


Ч.т.д.

А почему ты думаешь, что они вообще сработали???
Какие у тебя основания предполагать это вообще???

Ты их результат провeряшь? нет. Значит ты монетку подбрасываешь, то ли будет работать, то ли нет!

http://delphi.scps.ru/appl/appl5109.htm

И обязательно проситать статью 2010 года!
90% кода в интернете - говно
https://www.gunsmoker.ru/2010/05/90.html


http://docwiki.embarcadero.com/Libraries/Rio/en/System.SysUtils.CheckOSError
http://docwiki.embarcadero.com/Libraries/Rio/en/System.SysUtils.RaiseLastWin32Error

только когда у тебя
CheckOSError(CopyFile(...

Исключение бросит - не забудь с ним что-нибудь сделать
15 мар 19, 13:39    [21833746]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
goldmi45
  except
    on E: Exception do


какой на хрен Delphi TException в чистом Win32-коде ? Откуда???

PChar на каждом шагу и чаще видишь ?
15 мар 19, 13:39    [21833750]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
warkdimka
Err := WNetAddConnection2(nw, PChar(config.ReadString('Settings', 'netPass', '0')), PChar(config.ReadString('Settings', 'netUser', '0')), 0);


вот это вообще феерия!

записали код ошибки.... И выкинули его на помойку.

90% кода в интернете - говно
15 мар 19, 13:41    [21833752]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
warkdimka
 if FindFirst(config.ReadString('Settings', 'path', '0') + '*.xml', Attr, Sr) = 0 then //работа с каталогом (все пути указанны верно)
    repeat
      CopyFile(PChar(config.ReadString('Settings', 'path', '0')  + Sr.Name), PChar(config.ReadString('Settings', 'pathnetin', '0')+Sr.Name),false);
      DeleteFile(config.ReadString('Settings', 'path', '0')  + Sr.Name);
    until FindNext(Sr) <> 0;


Переменные? а что это такое???
Чем больше комьпютер тормозит - тем круче программа!
15 мар 19, 13:43    [21833756]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Александр Спелицин
Member

Откуда: Из ближайшего подмосковья.
Сообщений: 2477
Из-под какой учетки запущена служба?
Если это localservice / localsystem, то эти учетки принципиально не имеют никаких прав для выхода в сеть. (Правда для localsystem есть одно исключение, но 99.99% это не Ваш случай).
15 мар 19, 13:44    [21833758]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
warkdimka
Member

Откуда:
Сообщений: 17
Александр Спелицин
Из-под какой учетки запущена служба?
Если это localservice / localsystem, то эти учетки принципиально не имеют никаких прав для выхода в сеть. (Правда для localsystem есть одно исключение, но 99.99% это не Ваш случай).

служба из-под локальной учетки, она копирует в сеть, то есть права есть, но из сети не забирает
15 мар 19, 13:49    [21833771]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
goldmi45
Member

Откуда:
Сообщений: 1186
Arioch,

А может даже не в момент копирования вылетает из этой процедуры.
Угу. В этом месте нужно либо CheckOSError(CopyFile ()), либо if (CopyFile ()) then DeleteFile() else SysErrorMessage(GetLastError);

Ну и для отладки я бы натыкал запись в лог после каждого оператора. Тогда было бы видно, где возникает ошибка, на какой строке.
15 мар 19, 13:51    [21833778]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
warkdimka
Member

Откуда:
Сообщений: 17
Arioch
warkdimka
 if FindFirst(config.ReadString('Settings', 'path', '0') + '*.xml', Attr, Sr) = 0 then //работа с каталогом (все пути указанны верно)
    repeat
      CopyFile(PChar(config.ReadString('Settings', 'path', '0')  + Sr.Name), PChar(config.ReadString('Settings', 'pathnetin', '0')+Sr.Name),false);
      DeleteFile(config.ReadString('Settings', 'path', '0')  + Sr.Name);
    until FindNext(Sr) <> 0;


Переменные? а что это такое???
Чем больше комьпютер тормозит - тем круче программа!

есть файл настроек, там пути прописываются сразу из него беру пути
15 мар 19, 13:57    [21833792]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
goldmi45
Member

Откуда:
Сообщений: 1186
warkdimka
Arioch
пропущено...


Переменные? а что это такое???
Чем больше комьпютер тормозит - тем круче программа!

есть файл настроек, там пути прописываются сразу из него беру пути

Вам намекают на то, что лучше один раз прочитать путь из настроек в переменную, а потом её использовать, чем постоянно читать из файла настроек.
15 мар 19, 14:00    [21833800]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
warkdimka
Arioch
пропущено...

Переменные? а что это такое???
Чем больше комьпютер тормозит - тем круче программа!

есть файл настроек, там пути прописываются сразу из него беру пути


ну и ответь, зачем ты ТРИ раза читаешь файл с диска, потом ТРИ раза ищешь в нём одно и то же место, ТРИ раза вырезаешь это место в переменную ?
а если между этими разами файл поменяется и ты получишь разный текст?

в любом случае - зачем делать медленно?

вызвал функцию - ОДИН раз - положи результат в переменную.
Потому используй этот результат, а не гоняй туда-обратно по 10 раз.
15 мар 19, 14:00    [21833803]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
Александр Спелицин
Из-под какой учетки запущена служба?
Если это localservice / localsystem, то эти учетки принципиально не имеют никаких прав для выхода в сеть. (Правда для localsystem есть одно исключение, но 99.99% это не Ваш случай).


ему сразу сказали - 21833546

бесполезно

Но ведь иногда-то работает? значит всегда работает.
15 мар 19, 14:01    [21833806]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
goldmi45,

и это касается ЛЮБОЙ функции, хотя чтение файлов и поиск в нём - особенно

кстати, что функция (по сути, не по формальностям) PChar в данном случае почти бесплатна - это особенность Delphi. В других языках и она бы могла заниматься копированием данных например.
15 мар 19, 14:03    [21833812]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
Arioch
И обязательно прочитать статью 2010 года!
90% кода в интернете - говно
https://www.gunsmoker.ru/2010/05/90.html


...а потом переписать ВЕСЬ этот код начисто, с начала и до конца

Dixi
15 мар 19, 14:05    [21833817]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
warkdimka
Member

Откуда:
Сообщений: 17
Arioch
Александр Спелицин
Из-под какой учетки запущена служба?
Если это localservice / localsystem, то эти учетки принципиально не имеют никаких прав для выхода в сеть. (Правда для localsystem есть одно исключение, но 99.99% это не Ваш случай).


ему сразу сказали - 21833546

бесполезно

Но ведь иногда-то работает? значит всегда работает.

в сторону сети работает ВСЕГДА, из сети не работает
15 мар 19, 14:05    [21833819]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
warkdimka,

каким конкретно местом в коде ТЫ - не кто-то, а лично ты - ГАРАНТИРУЕШЬ что оно работает ?
15 мар 19, 14:07    [21833828]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
Arioch
ГАРАНТИРУЕШЬ что оно работает ?


точнее, что оно _сработало_, в _каждом_ конкретном вызове.
15 мар 19, 14:08    [21833832]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
warkdimka
Member

Откуда:
Сообщений: 17
Arioch
warkdimka,

каким конкретно местом в коде ТЫ - не кто-то, а лично ты - ГАРАНТИРУЕШЬ что оно работает ?

работает, если с локальной папки передаем в сетевую. там 2 почти одинаковых куска кода (различие в путях). сколько объяснять можно?
15 мар 19, 14:11    [21833835]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
Arioch
каким конкретно местом в коде


не надо словами

покажи конкретное место **в коде**, которое гарантирует, что функция отработала успешно

нет такого кода? это значит, что ТЫ никак не гарантируешь.
Ты просто играешь в спорт-лото.
Повезет - сработало.
Не повезло - да и хрен с ним.

Ну тогда и нормально все, нет проблемы. Ну не везет в половине случаев, зато в половине - повезло.




Arioch
Arioch
И обязательно прочитать статью 2010 года!
90% кода в интернете - говно
https://www.gunsmoker.ru/2010/05/90.html


...а потом переписать ВЕСЬ этот код начисто, с начала и до конца

Dixi
15 мар 19, 14:14    [21833845]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
goldmi45
then DeleteFile()

а если эта функция не отработала?

goldmi45
SysErrorMessage(GetLastError);

raiselastwin32error - так проще

goldmi45
запись в лог после каждого оператора

Можно. Но проще последовательность рабтоыс файлами снаружи посмотреть, через procmon
А потом уже всталвять подробный лог, но не везде, а только в районе ошибки.
Если вообще лог изнутри будет нужен, может быть по внешнему логу уже будет ясно.
15 мар 19, 14:19    [21833858]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
goldmi45
Member

Откуда:
Сообщений: 1186
Arioch
goldmi45
then DeleteFile()

а если эта функция не отработала?

и тоже нужно проверять результат работы.
15 мар 19, 14:25    [21833871]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
goldmi45
А может даже не в момент копирования вылетает из этой процедуры.


забыл написать, даже если скопировалось - не значит ,что скопировалось правильно.

у вас никогда не "бились" файлы в процессе копирования по сети?

а у меня бились, и SMB, и HTTP, и FTP
не часто - но бывает
Хотя не должно, TCP retransmit и все фигня.
Не должно, очень редко - и все же бывает.

поэтому желательно после копирования уже на той стороне проверять, что файл в процессе копирования не побился.

Т.е. схема вообще по другому выглядит.
На компе-источнике формируются файлы и контрольные хэши к ним (обычный MD5 или SHA2 или ещё что).

На компе-приёмнике программа копирует оба файла, данные и хэш, издали к себе и *локально* проверяет целостность.
Если совпало - тогда уже удаляет файл-источник.

Заодно прячется проблема "читать из сети можем, писать в сеть не можем".
Ну... почти прячется, удаление - тоже вид записи.

говно-код останется говно-кодом, но это видимо всех устраивает.

P.S. Ещё лучше вместо пары XML+MD5 просто клать XML в ZIP. Если там только XML и аналогичные файлы.
Гораздо быстрее прокопируется, и при распаковке проверка на целостность автоматически.
15 мар 19, 14:32    [21833888]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
Arioch
Member

Откуда:
Сообщений: 11038
goldmi45
Arioch
пропущено...

а если эта функция не отработала?

и тоже нужно проверять результат работы.


обрати внимание (присмотрись к типам параметров), что CopyFile он взял из Windows, а DeleteFile октуда-то из другого места, скорее всего SysUtils

ergo
1. если в uses будут те жде модули в рдугом порядке - программа может перестать компилироваться
2. даже сейчас у CopyFile и DeleteFile разные конвенции сообщения про ошибку, и проверять это надо по-разному

но всё хорошо, прекрасная маркиза. Иногда же работает? значит код всегда правильный.
15 мар 19, 14:39    [21833901]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
warkdimka
Member

Откуда:
Сообщений: 17
Arioch
Arioch
каким конкретно местом в коде


не надо словами

покажи конкретное место **в коде**, которое гарантирует, что функция отработала успешно

нет такого кода? это значит, что ТЫ никак не гарантируешь.
Ты просто играешь в спорт-лото.
Повезет - сработало.
Не повезло - да и хрен с ним.

Ну тогда и нормально все, нет проблемы. Ну не везет в половине случаев, зато в половине - повезло.




Attr := faAnyFile - faVolumeID - faDirectory; //работает
nw.dwType := RESOURCETYPE_ANY; 
nw.lpLocalName := nil;
nw.lpRemoteName := сетевой путь;
nw.lpProvider := nil;
Err := WNetAddConnection2(nw, PChar(config.ReadString('Settings', 'netPass', '0')), PChar(config.ReadString('Settings', 'netUser', '0')), 0);

if FindFirst(локальный путь) + '*.xml', Attr, Sr) = 0 then //работа с каталогом (все пути указанны верно)
repeat
CopyFile(PChar(локальный путь) + Sr.Name), PChar(сетевой путь)+Sr.Name),false);
DeleteFile(локальный путь) + Sr.Name);
until FindNext(Sr) <> 0;


Attr := faAnyFile - faVolumeID - faDirectory; //НЕ работает
nw.dwType := RESOURCETYPE_ANY; 
nw.lpLocalName := nil;
nw.lpRemoteName := сетевой путь;
nw.lpProvider := nil;
Err := WNetAddConnection2(nw, PChar(config.ReadString('Settings', 'netPass', '0')), PChar(config.ReadString('Settings', 'netUser', '0')), 0);

if FindFirst(сетевой путь + '*.xml', Attr, Sr) = 0 then //работа с каталогом (все пути указанны верно)
repeat
CopyFile(PChar(локальный путь) + Sr.Name), PChar(сетевой путь)+Sr.Name),false);
DeleteFile(сетевой путь) + Sr.Name);
until FindNext(Sr) <> 0;

если и так не понятно, то хз. от тебя ни одного совета не увидел кроме как ссылки на статьи про говнокод
15 мар 19, 14:39    [21833905]     Ответить | Цитировать Сообщить модератору
 Re: Перенос файлов из сетевой папки в локальную службой  [new]
goldmi45
Member

Откуда:
Сообщений: 1186
warkdimka
пропущено...

  Attr := faAnyFile - faVolumeID - faDirectory; //НЕ работает
  nw.dwType := RESOURCETYPE_ANY; 
  nw.lpLocalName := nil;
  nw.lpRemoteName := сетевой путь;
  nw.lpProvider := nil;
  Err := WNetAddConnection2(nw, PChar(config.ReadString('Settings', 'netPass', '0')), PChar(config.ReadString('Settings', 'netUser', '0')), 0);

  if FindFirst(сетевой путь + '*.xml', Attr, Sr) = 0 then //работа с каталогом (все пути указанны верно)
    repeat
      CopyFile(PChar(локальный путь) + Sr.Name), PChar(сетевой путь)+Sr.Name),false); // Копируете из локального (какого) каталога на сетевой (какой?)
      DeleteFile(сетевой путь) + Sr.Name);
    until FindNext(Sr) <> 0;


CopyFile MSDN
15 мар 19, 14:59    [21833932]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Delphi Ответить