iPhone Firemonkey アプリケーションの場合、ファイル (画像) を「tmp」フォルダに保存し、アプリケーションで使用しています。必要に応じてすべての「.jpg」ファイルを削除してキャッシュをフラッシュできるようにしたいのですが、FindFirst()呼び出しでプログラム的に一致させることができないようです。
単純なFindFirst() / FindNext() / FindClose()ループを使用して、フォルダーの内容を一覧表示 (および削除) しています。
ウィンドウの下では、コードは完全に機能します。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;