Конференция "WinAPI" » GetLongPathName - Отказано в доступе
 
  • Cobalt © (11.01.13 19:48) [0]
    Delphi7:

    function GetLongPathName(lpszShortName: LPCTSTR; lpszLongName: LPTSTR;
       cchBuffer: DWORD): DWORD; stdcall; external kernel32 name 'GetLongPathNameA';

    procedure TForm1.FormCreate(Sender: TObject);
    var
     str1, str2: string;
     Len : Integer;
    begin
    //  str1 := 'C:\Users\v.srednikh\Application Data\test\FprnM1C.dll'; // Файл реально существует
     str1 := 'C:\Users\V8F7D~1.SRE\APPLIC~1\test\FprnM1C.dll';
     // Use GetLongPathName where available (Win98 and later) to avoid
     // Win98 SE problems accessing UNC paths on NT/2K/XP based systems
       SetLength(str2, MAX_PATH + 1);
       len := GetLongPathName(PChar(str1), @str2[1], MAX_PATH);
       if Len = 0 then
         ShowMessage(SysErrorMessage(GetLastError));
       SetLength(str2, len);
       Caption := str2;
    end;



    Устойчиво дает отлуп на Win7 x64
    причем в Д7 получаю ErrorCode= 5 (Отказано в доступе)
    А в XE3 - 2 (Не удается найти указанный файл)
  • Cobalt © (11.01.13 19:49) [1]
    Да, вопрос - возможно ли побороть это?
  • брат Птибурдукова (11.01.13 19:59) [2]
    Может проблема в том, что Application Data — линк? (это, конечно, не ответ на [1]) С более простыми путями что получается?
  • Игорь Шевченко © (11.01.13 22:10) [3]
  • Игорь Шевченко © (11.01.13 22:43) [4]

    > dump questions


    dumb questions
  • Dimka Maslov © (17.01.13 21:00) [5]
    Не стоит размещать код там, где по определению должны располагаться данные. И вообще системе по барабану, длинный путь или короткий.
 
Конференция "WinAPI" » GetLongPathName - Отказано в доступе
Есть новые Нет новых   [134430   +2][b:0][p:0.001]