Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FileGetAttr ERROR_INVALID_NAME . Error 123 / 5 сообщений из 5, страница 1 из 1
04.06.2017, 23:34:48
    #39465613
Mikhail Tchervonenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FileGetAttr ERROR_INVALID_NAME . Error 123
Доброе время суток всем,

XE8, Server 2013, Клиент на Win 7 pro или win 10 Pro.
FileGetAttr(sSource);
9 раз из 10 раз возвращает ошибку:
123 (0x7B) The filename, directory name, or volume label syntax is incorrect .

где sSource := '\\?\UNC\server.domain.local\share$\FolderName\Example_example.pdf'
doc комманда cd \\?\UNC\server.domain.local\share$\FolderName\ работает без проблем,
если заменить на sSource := 'm:\FolderName\Example_example.pdf' то проблема исчезает.
Вот думаю, где причина. Доступ есть, 1 раз из 10 срабатывает. Что то на сервере?
Какие есть мысли?
...
Рейтинг: 0 / 0
05.06.2017, 00:04:33
    #39465615
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FileGetAttr ERROR_INVALID_NAME . Error 123
Mikhail TchervonenkoКакие есть мысли?

По-моему кусок "?\UNC\" там лишний. "\\?" это уже URI-синтаксис обращения к локальным
ресурсам.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.06.2017, 00:16:11
    #39465617
Mikhail Tchervonenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FileGetAttr ERROR_INVALID_NAME . Error 123
Dimitry SibiryakovMikhail TchervonenkoКакие есть мысли?

По-моему кусок "?\UNC\" там лишний. "\\?" это уже URI-синтаксис обращения к локальным
ресурсам.
да нет, с этим порядок
в результате дальнейших танцев выяснил, что если перед FileGetAttr сделать задержку то отрабатывает без ошибки. Напр. если ставлю на этой команде точку прерывания. Вставил перед FileGetAttr такой кусок кода:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure ProcessMessages2(Wnd: HWND = 0);
  var
    Msg: TMsg;
  begin
    while true do
      begin
        if not PeekMessage(Msg, Wnd, 0, 0, PM_REMOVE) then
          Break;
        TranslateMessage(Msg);
        DispatchMessage(Msg);
      end;
  end;


частота ошибок уменьшилась.
Тупо похоже на таймаут, но почему с таким кодом ошибки ...
...
Рейтинг: 0 / 0
05.06.2017, 02:30:34
    #39465637
Mikhail Tchervonenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FileGetAttr ERROR_INVALID_NAME . Error 123
пока выкрутился так:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
     function FileSetAttr2(const sPathFile: string; const iFileAttrib: integer; const nRepeat: integer = 5 ): integer; // 0 -> Ok, иначе код ошибки
      var nK: integer;
      begin
        nK := 0;
        result := -1;
        while (result<>0) and (nK<=nRepeat) do
        begin
          try
            result := FileSetAttr(sPathFile, iFileAttrib);
          except
            ProcessMessages2;
          end;
          nK := nK +1;
        end;
      end;


      function FileGetAttr2(const sPathFile: string; const nRepeat: integer = 5 ): integer;  // -1 -> Ошибка
      var nK: integer;
      begin
        nK := 0;
        result := -1;
        while (result<0) and (nK<=nRepeat) do
        begin
          try
            result := FileGetAttr(sPathFile);
          except
            result := -1;
            ProcessMessages2;
          end;
          nK := nK +1;
        end;
      end;



не то что бы красиво но от ошибки избавился.
На будушее надо ещё подумать, может прийдёт лучшая идея.
...
Рейтинг: 0 / 0
05.06.2017, 12:35:07
    #39465815
GunSmoker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FileGetAttr ERROR_INVALID_NAME . Error 123
Mikhail Tchervonenkoесли перед FileGetAttr сделать задержку то отрабатывает без ошибки

А перед FileGetAttr что делается-то?

Mikhail Tchervonenkoда нет, с этим порядок

А зачем там \\?\UNC\ добавляется-то?
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FileGetAttr ERROR_INVALID_NAME . Error 123 / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]