Frage

Wie würde ich erstellen und in eine Datei in einem Monotouch iPhone App schreiben?

Die Datei sollte zwischen Anwendungsstarts bestehen bleiben, so dass ich denke, es ist irgendwo in dem App-Bundle platziert werden muss (Dokumente oder Ressourcen?).

War es hilfreich?

Lösung

[ Hinweis: Meine Antwort ist ziemlich gründlich, weil ich Ihr Maß an Verständnis in Bezug auf App-Bundles oder die Struktur Ihres iPhone App Sandbox kleiner Welt nicht wissen - Entschuldigung, wenn ich die Dinge decken Sie bereits wissen, - ich ziehe ein wenig zu viel als zu wenig zu schreiben, und ein bisschen der warum bei der Erörterung der wie ...]

hinzufügen

Sie haben ein paar Optionen (natürlich). Ich nehme an, Sie sind bereits vertraut mit .Net zu einem gewissen Grad, und dass Ihre Frage ist, mehr darüber, wie diese die iPhone Way zu tun.

Jeder iPhone-App (und Sie werden das gleiche für Anwendungen auf OS X sehen) ist ein „Bündel“, die nicht eine ausführbare im herkömmlichen Sinn, sondern tatsächlich eine Ordnerhierarchie innerhalb derer Sie Ihre App binäre Leben ( zusammen mit Ressourcen, Einstellungen usw.).

Weil, wie uber-Sandbox iPhone Apps sind, Sie haben keinen Zugriff auf die freigegebenen Ordner würden Sie normalerweise in der Lage sein zu verwenden, wenn Desktop-Entwicklung zu tun (mit zum Beispiel ein gemeinsamer Ordner Dokumente, die lebt unter einem Benutzer Home-Ordner, auf die Anwendungen Zugriff haben).

Stattdessen Ihre App hat seine eigene Ordnerhierarchie, die wie ihre eigenen persönlichen Satz der Ordner ist, die typischerweise über Anwendungen gemeinsam genutzt werden würde.

Der einfachste Weg, um zu sehen, was Ordnerstruktur Ihrer App sieht aus wie auf dem Telefon auf dem Ordner suchen ist der iPhone-Simulator für App nutzt installiert, Einstellungen, bla bla bla. Auf meinem Rechner (ich erinnere mich nicht, ob dies konfigurierbar ist, aber es ist wahrscheinlich das gleiche auf Ihrem System) können Sie in den Ordner, die von diesem Weg erhalten:

~/Library/Application Support/iPhone Simulator

Innerhalb davon, gibt es einen User / Applications Ordner, der die Anwendungen enthält, die Sie an den Simulator installiert haben. Drill-down in einem dieser Ordner, und Sie können die Ordnerstruktur Ihrer App sehen Zugriff auf am Telefon haben.

Für die Speicherung von Dateien, die Sie über App-Sitzungen beibehalten möchten, App-Ordner Dokumente ist der Punkt. Es ist nicht die einzige Wahl Dateien zum Erstellen, aber es ist die rechts Wahl für diesen Job. Neben Dateien ordnungsgemäß gespeichert werden, werden sie im Ordner Dokumente zu halten bekommen sie auch von iTunes gesichert, wenn der Benutzer synchronisiert.

Mit Monotouch, können Sie Ihre App-Ordner Dokumente Pfad mit Environment.GetFolderPath(Environment.SpecialFolder.Personal); bekommen

Wenn Sie möchten, um es zu testen, ist dies ein äußerst einfacher Code, der eine Datei „out.txt“ genannt schreiben würde auf Ihre App-Ordner Dokumente. Dieser Code liest auch den Inhalt der Datei, um sie zu zeigen, erstellt wurde - für eine weitere Überprüfung, gehen Sie auf den Ordner Programme des Simulators, sortieren Sie die App-Ordner nach dem Datum sie geändert wurden, Drill-Down in die zuletzt geänderten und Blick ins Innere seiner Dokumente Ordner - Sie finden „out.txt“ (Sie können Ihre App nicht Ordner mit Namen zu finden, weil, wenn die App installiert ist, ist es in einem Ordner mit einem Namen wie „2B3CA854-FADB-4DDC-9732-0E61B3DD8D8C gestopft bekommt "- Sortieren der Ordner nach dem Datum sie geändert wurden, werden Sie auf die zuletzt modifizierten App verweisen, die in diesem Fall ist, was App den folgenden Code enthält):

// 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);

Also, das einzige, was hier das ist wirklich iPhone-spezifisch, dass „Environment.SpecialFolder.Personal“ Karten zu Ihrer App Ordner Dokumente ist zu wissen. Darüber hinaus ist es .Net wie gewohnt.

Und wieder war dies wahrscheinlich übertrieben, aber ich wollte ausreichend gründlich für alle zu beantworten, das es sieht - hoffe, das hilft:)

Andere Tipps

Die folgende Wie aus dem Xamarin.iOS Führungs Ort zu einem paar Hinweise, wo Sie Ihre Dateien speichern muss:

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

Sie können so etwas wie dies zur Laufzeit tun:

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

, und das wird die Datei erstellen. Um es zu öffnen für das Lesen, verwenden die gleiche Path.Combine() aber mit Stream .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top