2009-12-09 7 views
2

Dois-je ce droit ...NSFileManager & NSFileHandle?

To manipulate files on disk (create, copy, rename etc.) you use NSFileManager 

To manipulate file contents (open, read, close etc.) you use NSFileHandle 

Je veux juste vous assurer que je comprends ce droit.

EDIT_001

Merci, c'est ce que je me suis dit Joshua, donc je suppose que l'aide de l'exemple ci-dessous, ouvrir et fermer les deux sont automatiquement gérés par la mise en œuvre.

fileContents = [NSString stringWithContentsOfFile:fileOnDisk 
         encoding:NSMacOSRomanStringEncoding 
         error:&fileError]; 

gary

Répondre

3

Plus ou moins, oui. À partir des documents:

NSFileHandle objects provide an object-oriented wrapper for accessing open files or communications channels.

... même si NSFileHandle n'est pas nécessaire pour lire/écrire des fichiers. Vous pouvez écrire un NSString à/lire à partir d'un fichier avec une ligne de code et aucun handle. Cela dépend de ce que vous voulez faire.

+0

En réponse à votre modification, oui, tous les problèmes de gestion de fichiers directs sont abstraits par -stringWithContentsOfFile: encoding: error: –

+0

Vous devez seulement vous soucier de savoir si l'encodage est correct et si la méthode échoue (renvoie zéro) et a produit une erreur associée. –

0

Je crois, pour la plupart, que NSFileHandle est un wrapper autour des descripteurs de fichiers - bon pour la lecture ou l'écriture "relativement" de bas niveau.

Si vous ne faites que pousser le contenu d'une chaîne ou d'un NSData vers ou depuis un fichier, les méthodes associées sur ces classes sont difficiles à battre.

Questions connexes