2013-10-22 4 views
6

Sono molto nuovo per la piattaforma iOS. Sto cercando di salvare un file INI per la mia applicazione. Il problema è che non riesco a ottenere un percorso con permesso di scrittura.Salvare un TiniFile dall'applicazione su iOS

Ecco il mio codice:

ini := TIniFile.Create(GetHomePath + '/user.dat'); 
    try 
    ini.WriteString('data','user',edtuser.Text); 
    ini.WriteString('data','descr',edt1.Text); 
    finally 
    ini.Free; 
    end; 

ottengo un'eccezione che il file non può essere creato. Come posso ottenere un percorso scrivibile usando Firemonkey?

risposta

12

Usa TPath.GetDocumentsPath (e utilizzare TPath.Combine invece di concatenazione, per rimuovere l'hard-coded /):

uses 
    Systen,IOUtils; 


ini := TIniFile.Create(TPath.Combine(TPath.GetDocumentsPath, 'user.dat')); 

Utilizzando TPath.GetDocumentsPath lavori su tutte le piattaforme supportate (Win32, Win64, OSX, iOS e Android) in modo trasparente e l'utilizzo di TPath.Combine aggiungerà automaticamente lo TPath.DirectorySeparatorChar, quindi non dovrai concatenarlo manualmente.

Se si preferisce farlo da soli, però:

var 
    IniName: string; 
begin 
    IniName := TPath.GetDocumentsPath + TPath.DirectorySeparatorChar + 'user.dat'; 
    Ini := TIniFile.Create(IniName); 
    try 
    // Rest of code 
    finally 
    Ini.Free; 
    end; 
end; 
2

Può essere this o this può aiutare a

uses INIFiles; 

function TForm6.MyINIFilePath: string; 
begin 
// Result := GetHomePath + PathDelim + 'Library' + PathDelim+'My.ini'; 
    Result := GetHomePath + PathDelim + 'Documents' + PathDelim+'MyD.ini'; 
end;