powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FileGetAttr ERROR_INVALID_NAME . Error 123
5 сообщений из 5, страница 1 из 1
FileGetAttr ERROR_INVALID_NAME . Error 123
    #39465613
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток всем,

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
FileGetAttr ERROR_INVALID_NAME . Error 123
    #39465615
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail TchervonenkoКакие есть мысли?

По-моему кусок "?\UNC\" там лишний. "\\?" это уже URI-синтаксис обращения к локальным
ресурсам.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FileGetAttr ERROR_INVALID_NAME . Error 123
    #39465617
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
FileGetAttr ERROR_INVALID_NAME . Error 123
    #39465637
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пока выкрутился так:

Код: 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
FileGetAttr ERROR_INVALID_NAME . Error 123
    #39465815
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoесли перед FileGetAttr сделать задержку то отрабатывает без ошибки

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

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

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


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