Если это весь код, то рекомендую ознакомиться с такой вещью как "Разрешения и запрос разрешений у пользователя" (Uses Permissions). С версии Android 6 меры безопасности усилили и продолжают это делать по сей день. Ознакомиться можно в любом месте интернета (оф. справка Студии, Андроида, множество статей в интернете, форумы (включая этот), стековерфлоу и т.д.).
Вкратце, поставить галочку в настройках проекта на запрос разрешения для приложения недостаточно, необходимо написать код и в рантайме запрашивать разрешение у пользователя. В вашем случае, предполагаю, необходимо запросить разрешение "Manage external storage"(android.permission.MANAGE_EXTERNAL_STORAGE).
Вот мой пример (тест на Android 11, в настройках проекта установлена галочка "Manage external storage" + выдача разрешения "Разрешить управление всеми файлами" вручную):
var
LPath: string;
StringList: TStringList;
begin
LPath := TPath.Combine(TPath.GetSharedDownloadsPath, 'file1.txt');
StringList := TStringList.Create;
try
StringList.LoadFromFile(LPath);
ShowMessage(StringList.DelimitedText);
finally
StringList.Free;
end;
end;
Работает!
p.s. Пожалуйста, в следующий раз прикладывайте свой чистый проект, так вы сэкономите чужое время и вырастит вероятность получить ответ быстрее .