English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La classe FileInfo fournit les mêmes fonctionnalités que la classe File statique, mais vous pouvez contrôler la lecture et l'écriture des fichiers en écrivant manuellement le code pour lire ou écrire des octets à partir de fichiers./Les opérations d'écriture ont plus de contrôle.
Propriétés | Utilisation |
---|---|
Directory | Obtenez une instance du répertoire parent. |
DirectoryName | Obtenez une chaîne représentant le chemin complet du répertoire. |
Exists | Obtenez une valeur indiquant si le fichier existe. |
Extension | Obtenez une chaîne représentant la partie de l'extension du fichier. |
FullName | Obtenez le chemin complet du répertoire ou du fichier. |
IsReadOnly | Obtenez ou définissez une valeur qui indique si le fichier actuel est en lecture seule. |
LastAccessTime | Obtenez ou définissez le temps de la dernière accès au fichier ou au répertoire actuel. |
LastWriteTime | Obtenez ou définissez le temps de la dernière écriture du fichier ou du répertoire actuel. |
Length | Obtenez la taille actuelle du fichier en octets. |
Name | Obtenez le nom du fichier. |
Méthode | Utilisation |
---|---|
AppendText | Créez un StreamWriter pour ajouter du texte au fichier représenté par cette instance de FileInfo. |
CopyTo | Copiez le fichier existant vers un nouveau fichier sans permettre de couvrir le fichier existant. |
Create | Créez un fichier. |
CreateText | Créez un StreamWriter pour écrire dans un nouveau fichier texte. |
Decrypt | Décryptez le fichier crypté par le compte actuel en utilisant la méthode Encrypt. |
Delete | Supprimez le fichier spécifié. |
Encrypt | Cryptez le fichier de sorte que seules les comptes utilisés pour crypter le fichier puissent le déchiffrer. |
GetAccessControl | Obtenez un objet FileSecurity qui encapsule les entrées de la liste de contrôle d'accès (ACL) du fichier spécifié. |
MoveTo | Déplacez le fichier spécifié vers une nouvelle position et fournissez l'option de nouveau nom de fichier. |
Open | Ouvrez un dans le FileMode spécifié. |
OpenRead | Créez un FileStream en lecture. |
OpenText | Créez un fichier avec UTF8StreamReader codé, l'encodeur peut lire un fichier texte existant. |
OpenWrite | Créez un FileStream en écriture. |
Replace | Remplacez le contenu du fichier spécifié par l'objet FileInfo actuel, supprimez le fichier original et créez une sauvegarde du fichier de remplacement. |
ToString | Pour retourner le chemin sous forme de chaîne. |
L'exemple suivant montre comment lire manuellement des octets à partir de fichiers, puis utiliser UTF8编码将它们转换为字符串 :
Exemple : lire un fichier avec la classe FileInfo
//Créer un objet FileInfo pour le chemin spécifié FileInfo fi = new FileInfo(@"D:\DummyFile.txt"); //Ouvrir le fichier pour lecture/écriture FileStream fs = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite); //Créez un tableau de bytes de la même taille que la longueur du FileStream byte[] fileBytes = new byte[fs.Length]; //Définissez un compteur pour vérifier combien d'octets doivent être lus. Diminuez le compteur à chaque lecture d'un octet int numBytesToRead = (int)fileBytes.Length; //Le compteur indique le nombre d'octets lus int numBytesRead = 0; //Itère jusqu'à ce que tous les octets du FileStream soient lus while (numBytesToRead > 0) { int n = fs.Read(fileBytes, numBytesRead, numBytesToRead); if (n == 0) break; numBytesRead += n; numBytesToRead -= n; } //Après avoir lu tous les octets du FileStream, vous pouvez utiliser UTF8编码将其转换为字符串 string filestring = Encoding.UTF8.GetString(fileBytes);
Comme indiqué dans le code ci-dessus, vous devez écrire beaucoup de code pour lire à partir de FileSream/Écrire une chaîne de caractères. En utilisant StreamReader et StreamWriter, vous pouvez facilement effectuer la même lecture/Opérations d'écriture.
L'exemple suivant montre comment StreamReader rend facile la lecture de chaînes de caractères à partir de fichiers :
Exemple : lire un fichier avec StreamReader
//Créer un objet FileInfo pour le chemin spécifié FileInfo fi = new FileInfo(@"D:\DummyFile.txt"); //Ouvrir le fichier pour lecture/écriture FileStream fs = fi.Open(FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read); //Créez un objet StreamReader en passant un objet FileStream que vous devez manipuler StreamReader sr = new StreamReader(fs); //Utilisez la méthode ReadToEnd pour lire tout le contenu du fichier string fileContent = sr.ReadToEnd(); //Fermez l'objet StreamReader après l'opération sr.Close(); fs.Close();
Notez que fi.Open() a trois paramètres :
Le premier paramètre est FileMode, utilisé pour créer et ouvrir un fichier (si le fichier n'existe pas) ;
Le second paramètre FileAccess représente l'opération de lecture ;
Le troisième paramètre est de partager le fichier avec d'autres utilisateurs pour la lecture lors de l'ouverture du fichier.
L'exemple suivant montre comment StreamWriter rend plus facile l'écriture de chaînes dans un fichier :
Exemple : Utiliser StreamWriter pour écrire du texte dans un fichier
//Créer un objet FileInfo pour le chemin spécifié FileInfo fi = new FileInfo(@"D:\DummyFile.txt"); //Ouvrir le fichier pour lecture/écriture FileStream fs = fi.Open(FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read); //Créer un objet StreamWriter pour écrire une chaîne dans le FileStream StreamWriter sw = new StreamWriter(fs); sw.WriteLine("Another line from streamwriter"); sw.Close();
Il n'est pas possible d'exécuter des opérations de lecture et d'écriture sur le même objet FileStream. Si vous lisez déjà un fichier, créez un objet FileStream distinct pour écrire dans le même fichier, comme suit :
Exemple : StreamReader et StreamWriter
//Créer un objet FileInfo pour DummyFile.txt FileInfo fi = new FileInfo(@"D:\DummyFile.txt"); //Ouvrir DummyFile.txt pour la lecture FileStream fsToRead = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite); //Ouvrir DummyFile.txt pour l'écriture FileStream fsToWrite = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite); //Obtenir StreamReader StreamReader sr = new StreamReader(fsToRead); //Utiliser l'objet StreamReader pour lire tout le texte string fileContent = sr.ReadToEnd(); sr.Close(); //Obtenir StreamWriter StreamWriter sw = new StreamWriter(fsToWrite); //Écrire quelques mots avec StreamWriter sw.WriteLine("Another line from streamwriter"); sw.Close(); //Fermez tous les objets Stream fsToRead.Close(); fsToWrite.Close();
Par conséquent, vous pouvez utiliser les classes FileInfo, StreamReader et StreamWriter pour lire les fichiers physiques/Écrire le contenu.