Question

Comment puis-je créer et écrire dans un fichier dans une application iPhone MonoTouch?

Le fichier devrait se poursuivre entre les lancements d'application, donc je suppose qu'il doit être placé quelque part dans le paquet App (documents ou ressources?).

Était-ce utile?

La solution

[ Remarque: Ma réponse est assez complet parce que je ne connais pas votre niveau de compréhension des faisceaux d'applications ou la structure de votre petit monde sandbox iPhone app - excuses si je couvre les choses que vous connaissez déjà - Je préfère écrire un peu trop que trop peu, et d'ajouter un peu de pourquoi lors de la discussion du comment ...]

Vous avez quelques options (bien sûr). Je suppose que vous êtes déjà familier avec .Net dans une certaine mesure et que votre question est plus sur la façon de faire le chemin iPhone.

Chaque application iPhone (et vous verrez la même chose pour les applications sur OS X) est un « paquet » qui n'est pas un exécutable dans le sens traditionnel, mais en fait une hiérarchie de dossiers à l'intérieur duquel votre vie binaire app ( ainsi que des ressources, les paramètres, etc.).

En raison de la façon dont les applications iPhone uber-sandbox sont, vous n'avez pas accès aux dossiers partagés que vous souhaitez généralement être en mesure d'utiliser pour faire du développement de bureau (ayant, par exemple, un dossier de documents communs qui vit sous d'un utilisateur dossier de base auquel les applications ont accès).

Au lieu de cela, votre application a sa propre hiérarchie de dossier qui est comme son propre jeu personnel des dossiers qui sont généralement partagées entre les applications.

La meilleure façon de voir ce que la structure de dossiers de votre application ressemble au téléphone est de regarder le dossier le simulateur iPhone utilise pour l'application installe, paramètres, bla bla bla. Sur ma machine (je ne me souviens pas si cela est configurable, mais il est probablement la même chose sur votre système), vous pouvez obtenir dans le dossier par ce chemin:

~/Library/Application Support/iPhone Simulator

À l'intérieur de cela, il y a un utilisateur / dossier Applications qui contient les applications installées sur le simulateur. Percer vers le bas dans l'un de ces dossiers, et vous pouvez voir la structure du dossier de votre application aura accès au téléphone.

Pour le stockage des fichiers que vous aimeriez voir persistait à travers des sessions d'applications, le dossier de votre application Documents est l'endroit. Ce n'est pas votre seul choix pour la création de fichiers, mais il est le choix droit pour ce travail. En plus de vos fichiers correctement stockés, les garder dans le dossier Documents également les obtenir sauvegardés par iTunes lorsque l'utilisateur se synchronise.

Avec MonoTouch, vous pouvez obtenir de votre application chemin du dossier Documents avec Environment.GetFolderPath(Environment.SpecialFolder.Personal);

Si vous souhaitez le tester, c'est un code très simple qui va écrire un fichier appelé « out.txt » dans le dossier de votre application Documents. Ce code se lit également le contenu du fichier pour montrer qu'il a été créé - pour une vérification plus poussée, allez dans le dossier Applications du simulateur, trier les dossiers d'application de la date où ils ont été modifiés, forer vers le bas dans le plus récemment modifié, et regarder à l'intérieur de ses documents dossier - vous trouverez « out.txt » (vous ne trouvez pas le dossier de votre application par nom parce que, lorsque votre application est installée, il se fait fourrer dans un dossier avec un nom comme « 2B3CA854-FADB-4DDC-9732-0E61B3DD8D8C "- le tri des dossiers par la date où ils ont été modifiés vous pointer vers l'application la plus récente modification, qui, dans ce cas, est ce que l'application contient le code suivant):

// For this to function, don't forget "using System.IO;"

// If you're just playing around with this to see it work, place it inside
// your AppDelegate's "FinishedLaunching" method in main.cs

string path = Environment.GetFolderPath (Environment.SpecialFolder.Personal);
string filePath = Path.Combine(path, "out.txt");

// File.WriteAllText will create a file and then write text to it. If the
// file already exists, File.WriteAllText will overwrite it.
File.WriteAllText(filePath, "Howdy, world.");

// Now we prove it worked by reading the contents of the file and then
// printing them to the console...   
string text = File.ReadAllText(filePath);
Console.WriteLine(text);

Alors, la seule chose ici qui est vraiment spécifique à l'iPhone est de savoir que les cartes « Environment.SpecialFolder.Personal » dans le dossier de votre application Documents. Au-delà de cela, il est .Net comme d'habitude.

Et, encore une fois, ce fut sans doute exagéré, mais je voulais répondre suffisamment à fond pour tout le monde qui le voit - espérons que cette aide:)

Autres conseils

Voici comment le site de guide Xamarin.iOS a quelques conseils à l'endroit où stocker vos fichiers:

http://docs.xamarin.com/guides/ios/application_fundamentals/ working_with_the_file_system /

Vous pouvez faire quelque chose comme ceci à l'exécution:

using (StreamWriter writer = new StreamWriter (Path.Combine (Environment.SpecialFolders.Documents, "yourfilename.ext"))) { }

et qui va créer le fichier. Pour l'ouvrir pour la lecture, utilisez la même Path.Combine() mais avec StreamReader .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top