3 messaggi dal 04 settembre 2017
In pratica leggo i dati da php con un metodo async, però adesso vorrei salvarli in un file json che risederà sulla memoria interna del cellulare. Se il file non esiste, come lo posso creare?
Modificato da A. Ror il 04 settembre 2017 14.36 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao e benvenuto nel forum!

Puoi scrivere un file di testo con il metodo System.IO.File.WriteAllText che trovi documentato qui:
https://developer.xamarin.com/api/member/System.IO.File.WriteAllText/p/System.String/System.String/

Trovi un esempio completo in questa pagina della documentazione:
https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/files/#iOS_and_Android

ciao,
Moreno

Enjoy learning and just keep making
3 messaggi dal 04 settembre 2017
Grazie per la risposta!
Ma il metodo 'WriteAllText' crea il file anche se non esiste? Come percorso, dato che è della memoria interna del dispositivo, come faccio ad impostare lo stesso della directory dell'app?
11.886 messaggi dal 09 febbraio 2002
Contributi
A. Ror ha scritto:

Ma il metodo 'WriteAllText' crea il file anche se non esiste?


Certo, così è scritto nella documentazione che ti ho linkato. Leggi quello che ti mando altrimenti la conversazione non va avanti :)

Creates a new file, writes the specified string to the file, and then closes the file. If the target file already exists, it is overwritten.


A. Ror ha scritto:

Come percorso, dato che è della memoria interna del dispositivo, come faccio ad impostare lo stesso della directory dell'app?

Nell'esempio che ti ho linkato, con questa istruzione viene selezionata la directory in cui puoi scrivere:

Environment.GetFolderPath(Environment.SpecialFolder.Personal)


Ogni piattaforma ha le proprie peculiarità per quanto riguarda il file system. Questo per esempio è iOS:
https://developer.xamarin.com/guides/ios/application_fundamentals/working_with_the_file_system/

Quindi, se l'applicazione è Xamarin.iOS e volessi creare un file che viene backuppato su iTunes, andresti a scrivere nella cartella Library come riportato in questo esempio:
https://developer.xamarin.com/guides/ios/application_fundamentals/working_with_the_file_system/#Accessing_Other_Directories_Programmatically

ciao,
Moreno
Modificato da BrightSoul il 04 settembre 2017 19.03 -

Enjoy learning and just keep making
843 messaggi dal 08 aprile 2009
Se è multipiattaforma devi crearti delle interfacce poichè ogni sistema ha le sue peculiarità.
Inoltre l'accesso ai files è completamente diverso tra UWP e Android/iOS e quindi molti metodi che utilizzi ora sul File.IO potresti non trovarli.
Sul progetto portable ti crei una classe di interfaccia:
 public interface ILocalFiles
{
}


All'interno di questa interfaccia vai a crearti tutti i metodi che ti serviranno specifici per ogni piattaforma. Ad esempio se devi accedere all'application path:
 public interface ILocalFiles
{
 string ApplicationPath();
}


Per ogni progetto piattaforma vai a creare una classe che eredita dall'interfaccia e vai ad implementare i metodi:
Esempio per Android:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System;
using System.IO;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;

using TuaApp.Interfacce;
using Xamarin.Forms;


[assembly: Dependency(typeof(TuaApp.Droid.Interfacce.LocalFiles))]
namespace TuaApp.Droid.Interfacce
{
 public string ApplicationPath(string AppDirLight,string AppDir)
        {
            Android.Content.PM.ApplicationInfo application_info = Android.App.Application.Context.ApplicationContext.PackageManager.GetApplicationInfo(Android.App.Application.Context.ApplicationContext.PackageName, 0);

            return application_info.DataDir;
        }
}




Ogni qual volta hai la necessità di sfruttare l'ambiente nativo devi crearti delle interfacce.
272 messaggi dal 17 settembre 2006
Nel caso fosse xamarin.forms questo potrebbe essere utile https://components.xamarin.com/view/pclstorage

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.