Cette documentation est archivée et n’est pas conservée.

FileInfo, classe

Mise à jour : novembre 2007

Fournit des méthodes d'instance pour créer, copier, supprimer, déplacer et ouvrir des fichiers et facilite la création d'objets FileStream. Cette classe ne peut pas être héritée.

Espace de noms :  System.IO
Assembly :  mscorlib (dans mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class FileInfo : FileSystemInfo
/** @attribute SerializableAttribute */ 
/** @attribute ComVisibleAttribute(true) */
public final class FileInfo extends FileSystemInfo
public final class FileInfo extends FileSystemInfo

Utilisez la classe FileInfo pour les opérations courantes telles que la copie, le déplacement, l'attribution de nouveau nom, la création, l'ouverture, la suppression et l'ajout de fichiers.

La plupart des méthodes FileInfo retournent d'autres types d'E/S lorsque vous créez ou ouvrez des fichiers. Vous pouvez utiliser ces autres types pour manipuler davantage un fichier. Pour plus d'informations, consultez des membres FileInfo spécifiques tels que Open, OpenRead, OpenText, CreateText, ou Create.

Si vous souhaitez réutiliser un objet plusieurs fois, l'utilisation de la méthode d'instance de FileInfo à la place des méthodes statiques correspondantes de la classe File peut être préférable, parce qu'une vérification de la sécurité n'est pas toujours nécessaire.

Par défaut, tous les utilisateurs ont l'autorisation d'accès complet en lecture/écriture aux nouveaux fichiers.

Le tableau suivant décrit les énumérations qui sont utilisées pour personnaliser le comportement de différentes méthodes FileInfo.

Énumération

Description

FileAccess

Spécifie l'accès en lecture et en écriture à un fichier.

FileShare

Spécifie le niveau d'accès autorisé pour un fichier déjà utilisé.

FileMode

Spécifie si le contenu d'un fichier existant est préservé ou substitué et si les demandes de création d'un fichier existant génèrent une exception.

akth6b1k.alert_note(fr-fr,VS.90).gifRemarque :

Dans les membres qui acceptent un chemin d'accès en tant que chaîne d'entrée, ce chemin d'accès doit être correctement construit ; sinon, une exception est levée. Par exemple, si un chemin d'accès est qualifié complet, mais commence par un espace, le chemin n'est pas rogné dans les méthodes de la classe. Par conséquent, le chemin d'accès est incorrect et une exception est levée. De façon similaire, un chemin d'accès ou une combinaison de chemins d'accès ne peut pas être qualifié complet deux fois. Par exemple, "c:\temp c:\windows" lève une exception dans la plupart des cas. Assurez-vous que vos chemins d'accès sont correctement construits lorsque vous utilisez des méthodes qui acceptent une chaîne de chemin d'accès.

Dans les membres qui acceptent un chemin d'accès, le chemin d'accès peut faire référence à un fichier ou simplement à un répertoire. Le chemin d'accès spécifié peut également faire référence à un chemin d'accès relatif ou à un chemin d'accès de convention d'affectation de noms (UNC) pour un nom de serveur et de partage. Par exemple, les chemins d'accès suivants sont tous valides :

  • "c:\\monRépertoire\\monFichier.txt" en C# ou "c:\monRépertoire\monFichier.txt" en Visual Basic.

  • "c:\\monRépertoire" en C# ou "c:\monRépertoire" en Visual Basic.

  • "c:\\monRépertoire\\monSousRépertoire" en C# ou "c:\MonRépertoire\MonSousRépertoire" en Visual Basic.

  • "c:\\\\monServeur\\monPartage" en C# ou "c:\\monServeur\monPartage" en Visual Basic.

Pour obtenir la liste des tâches d'E/S courantes, consultez Tâches d'E/S courantes.

Remarque sur la plateforme Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows CE :

Comme les systèmes de fichiers pour périphériques fonctionnent différemment, le .NET Compact Framework ne prend pas en charge l'obtention ou la définition des attributs de fichier.

L'exemple suivant illustre certains membres principaux de la classe FileInfo.

using System;
using System.IO;

class Test 
{
	
    public static void Main() 
    {
        string path = Path.GetTempFileName();
        FileInfo fi1 = new FileInfo(path);

        if (!fi1.Exists) 
        {
            //Create a file to write to.
            using (StreamWriter sw = fi1.CreateText()) 
            {
                sw.WriteLine("Hello");
                sw.WriteLine("And");
                sw.WriteLine("Welcome");
            }	
        }

        //Open the file to read from.
        using (StreamReader sr = fi1.OpenText()) 
        {
            string s = "";
            while ((s = sr.ReadLine()) != null) 
            {
                Console.WriteLine(s);
            }
        }

        try 
        {
            string path2 = Path.GetTempFileName();
            FileInfo fi2 = new FileInfo(path2);

            //Ensure that the target does not exist.
            fi2.Delete();

            //Copy the file.
            fi1.CopyTo(path2);
            Console.WriteLine("{0} was copied to {1}.", path, path2);

            //Delete the newly created file.
            fi2.Delete();
            Console.WriteLine("{0} was successfully deleted.", path2);

        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    }
}


import System.*;
import System.IO.*;

class Test
{
    public static void main(String[] args)
    {
        String path = "c:\\temp\\MyTest.txt";
        FileInfo fi1 = new FileInfo(path);

        if (!(fi1.get_Exists())) {
            //Create a file to write to.
            StreamWriter sw = fi1.CreateText();
            try {
                sw.WriteLine("Hello");
                sw.WriteLine("And");
                sw.WriteLine("Welcome");
            }
            finally {
                sw.Dispose();
            }
        }

        //Open the file to read from.
        StreamReader sr = fi1.OpenText();
        try {
            String s = "";
            while ((s = sr.ReadLine())!= null) {
                Console.WriteLine(s);
            }
        }
        finally {
            sr.Dispose();
        }
        try {
            String path2 = path + "temp";
            FileInfo fi2 = new FileInfo(path2);

            //Ensure that the target does not exist.
            fi2.Delete();

            //Copy the file.
            fi1.CopyTo(path2);
            Console.WriteLine("{0} was copied to {1}.", path, path2);

            //Delete the newly created file.
            fi2.Delete();
            Console.WriteLine("{0} was successfully deleted.", path2);
        }
        catch (System.Exception e) {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    } //main
} //Test


Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile pour Smartphone, Windows Mobile pour Pocket PC, Xbox 360

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Pris en charge dans : 3.5, 2.0, 1.0

XNA Framework

Pris en charge dans : 2.0, 1.0
Afficher: