Конференция "Начинающим" » Не отрабатывает FileExists
 
  • Alex_777 (23.03.17 16:14) [0]
    Под Delphi 6 эта маленькая часть кода работает:

    GetDir(0,dir);
    dir:=dir+'\Отчеты';
    if not FileExists(dir) then
     MkDir(dir);
    SaveDialog1.InitialDir:=dir;

    А под Delphi XE6 выдаёт ошибку: I/O error 183.

    Определил при пошаговой отработке, что if not FileExists(dir) почему-то всегда True.
    Подскажите в чем может быть проблема.
  • rrrrr © (23.03.17 16:29) [1]
    for i := 0 to 10 do
     begin
      GetDir(i,s);
      Memo1.Lines.Add(Format('%d  %s %s %s',[i,s, VarToStr(DirectoryExists(s)), VarToStr(FileExists(s))]));
     end;
  • Alex_777 (23.03.17 16:44) [2]
    rrrrr ©

    Спасибо. Понял, что использовал не ту функцию, но не понял, почему работало в Delphi 6?
  • rrrrr © (23.03.17 16:49) [3]
    потому что реализация fileexists разная
  • Alex_777 (23.03.17 16:52) [4]
    rrrrr ©

    Спасибо.
  • Германн © (24.03.17 01:30) [5]

    > rrrrr ©   (23.03.17 16:49) [3]
    >
    > потому что реализация fileexists разная

    Просто из любопытства. Чем разная?
    ХЕ5 пробовал в ознакомительных целях только раз и не долго.
  • sniknik © (24.03.17 10:19) [6]
    > if not FileExists(dir) then
    >  MkDir(dir);
    а почему проверяются файлы, а создается директория? проверку бы поменять на DirectoryExists.
  • Leonid Troyanovsky © (24.03.17 10:57) [7]

    > Alex_777   (23.03.17 16:44) [2]

    > Понял, что использовал не ту функцию

    Подобные функции бесполезны, а порой и вредны.

    --
    Regards, LVT.
 
Конференция "Начинающим" » Не отрабатывает FileExists
Есть новые Нет новых   [118667   +47][b:0][p:0]