Замечания и предложения


#1536

Привык юзать в коде функцию: ExtractFilePath(GetEXEFileName) и с новыми версиями начали сыпаться ошибки в коде.


#1537

Конкретнее выражайтесь, это ничего не говорит.

И - та функция всё равно дубль, оригиналы всех для работы с путями к файлам - в классе System.IO.Path.


#1538

Наверное вы её неправильно использовали


#1539

Вот к примеру небольшой код, использующий стороннюю библиотеку для распаковки архива. Исходник лежит в папке с игрой Skyrim.

{$reference 'SharpCompress.dll'}
uses SharpCompress, SharpCompress.Archives;
begin
  try
    var archive: SharpCompress.Archives.IArchive := SharpCompress.Archives.ArchiveFactory.Open(ExtractFilePath(GetEXEFileName) + 'Skyrim\Updates\Enhanced_Blood_Textures_LITE.rar', nil);
    var EO := new SharpCompress.Common.ExtractionOptions;
    EO.ExtractFullPath := true;
    EO.Overwrite := true;
    foreach var entry in archive.Entries do
      if not entry.IsDirectory then entry.WriteToDirectory(ExtractFilePath(GetEXEFileName) + 'Mod Organizer\mods\', EO);
  except
    on System.DivideByZeroException do 
      writeln('Деление на 0');
    on e: System.IndexOutOfRangeException do
      writeln(e.Message);
    on System.FormatException do
      writeln('Неверный формат ввода');
  else writeln('Какое-то другое исключение');
  end;
end.

Если в настройках не отрубить функцию “Выходные файлы генерировать в директорию такую-то”, то программа будет сыпать ошибку:

Ошибка времени выполнения: System.IO.FileNotFoundException: Не удалось загрузить файл или сборку “SharpCompress, Version=0.23.0.0, Culture=neutral, PublicKeyToken=afb0a02973931d96” либо одну из их зависимостей. Не удается найти указанный файл. Стек: в 1.Program.$Main() в 1.Program.Main()


#1540

По моему уже был разговор про это здесь. Но разработчики то ли не прочитали, то ли проигнорили… В общем сделал issue, теперь точно заметят: