对于 iPhone Firemonkey 应用程序,我将文件(图像)存储在“tmp”文件夹中并在我的应用程序中使用它们。我希望能够通过按需删除所有“.jpg”文件来刷新缓存,但我似乎无法在FindFirst()调用中以编程方式匹配它们。
我正在使用一个简单的FindFirst() / FindNext() / FindClose()循环来列出(并删除)文件夹的内容。
在 Windows 下,代码可以完美运行。iOS (iPhone) 下的同一应用程序始终为FindFirst()调用返回值 -1(错误),并且SearchRec.Name为空白。我尝试过使用各种文件模式,包括 ' 。'没有成功。
我知道这些文件存在,因为我可以毫无错误地读取和写入它们(在 iOS 和 Windows 下),并且它们的内容是正确的。FileExists ()检查也返回 True。
此外,如果我指定一个没有通配符的文件模式,以检查已知文件(这实际上不是FindFirst()调用的重点),该调用永远不会返回(这在 Windows 下也很好)!
有没有人在iOS下取得了任何成功并且可以提供任何想法?
谢谢,
编辑:根据要求演示问题的代码片段。注意:_sFolderName 包含我已经确认绝对正确的缓存文件夹名称。
function GetCacheFileList : string;
var
iResult: integer;
sr: TSearchRec;
sPath,
sTemp: string;
sFilename : TFilename;
begin
sTemp := '';
sFilename := _sFolderName + '*.jpg';
//
iResult := FindFirst(sFilename, faAnyFile, sr); // ALWAYS RETURNS -1 under iOS
while (iResult = 0) do
begin
sTemp := sTemp + sr.Name + sLineBreak;
iResult := FindNext(sr)
end; { while }
//
FindClose(sr);
Result := sTemp
end;