저는 Delphi 10.2 Tokyo Firemonkey를 사용하여 멀티 플랫폼 응용 프로그램을 작성하고 있습니다. Dropbox가 컴퓨터에 있는지 여부를 확인해야합니다. 이를 위해 info.json 파일의 존재 여부를 확인한 다음 해당 json 파일을 처리하여 Dropbox 폴더의 경로를 가져와야합니다.Delphi - OSX의 Dropbox 확인
class function TUtilityMac.DropboxExists: Boolean;
var
infojsonpath: String;
begin
Result:=false;
infojsonpath:='~/.dropbox/info.json';
if not FileExists (infojsonpath, True) then
exit;
Result:=true;
end;
하지만 맥 (즉, 드롭 박스가 설치되어)에서이 작업을 실행할 때 FileExists
기능에 관계없이 두 번째 매개 변수의 false
이 (되고 반환
True
또는
False
). 터미널 창을 열고
cd ~/.dropbox
을 실행 한 다음
dir
을 실행하면 info.json 파일이 표시됩니다.
내가 누락 된 부분에 대한 의견이 있으십니까? 이것에 관한 어떤 조언도 감사 할 것입니다 ...
정말이 매력적인 이중 부정 논리가 정말로 필요합니까? 'DropboxExists : = FileExists ('~/.dropbox/info.json', True) ' –
이것은 내 앱의 실제 코드가 아닌 문제를 보여줄 수있는 독립 실행 형 코드입니다. 실제 코드에서 나는 파일을 찾고 json을 파싱하여 Dropbox 폴더의 실제 위치를 얻습니다. 그러나 나는 당신과 동의 할 것입니다, 그것은 당신이 제안한만큼 콤팩트했을 수 있습니다 :) – Rohit
'FileExists()'체크를 제거하면 같은 경로를 사용하여 파일을로드 할 수 있습니까? 그렇다면'FileExists()'를 잊어 버리고 무조건 파일을 항상로드하고 필요에 따라로드 오류를 처리하십시오. –