ZipArchiveEntry.FullName Propriété

Définition

Obtient le chemin d’accès relatif de l’entrée dans l’archive zip.

C#
public string FullName { get; }

Valeur de propriété

Chemin d’accès relatif de l’entrée dans l’archive zip.

Remarques

La FullName propriété contient le chemin relatif, y compris la hiérarchie de sous-répertoire, d’une entrée dans une archive zip. (En revanche, la Name propriété contient uniquement le nom de l’entrée et n’inclut pas la hiérarchie de sous-répertoire.) Par exemple, si vous créez deux entrées dans une archive zip à l’aide de la CreateEntryFromFile méthode et que vous fournissez NewEntry.txt comme nom pour la première entrée et AddedFolder\\NewEntry.txt pour la deuxième entrée, les deux entrées auront NewEntry.txt dans la Name propriété. La première entrée aura NewEntry.txt également dans la FullName propriété, mais la deuxième entrée aura AddedFolder\\NewEntry.txt dans la FullName propriété.

Vous pouvez spécifier n’importe quelle chaîne comme chemin d’accès d’une entrée, y compris les chaînes qui spécifient des chemins d’accès non valides et absolus. Par conséquent, la FullName propriété peut contenir une valeur qui n’est pas correctement mise en forme. Un chemin d’accès non valide ou absolu peut entraîner une exception lorsque vous extrayez le contenu de l’archive zip.

Exemples

L’exemple suivant montre comment itérer dans le contenu d’un fichier .zip et extraire les fichiers qui contiennent l’extension .txt.

C#
using System;
using System.IO;
using System.IO.Compression;

class Program
{
    static void Main(string[] args)
    {
        string zipPath = @".\result.zip";

        Console.WriteLine("Provide path where to extract the zip file:");
        string extractPath = Console.ReadLine();

        // Normalizes the path.
        extractPath = Path.GetFullPath(extractPath);

        // Ensures that the last character on the extraction path
        // is the directory separator char.
        // Without this, a malicious zip file could try to traverse outside of the expected
        // extraction path.
        if (!extractPath.EndsWith(Path.DirectorySeparatorChar.ToString(), StringComparison.Ordinal))
            extractPath += Path.DirectorySeparatorChar;

        using (ZipArchive archive = ZipFile.OpenRead(zipPath))
        {
            foreach (ZipArchiveEntry entry in archive.Entries)
            {
                if (entry.FullName.EndsWith(".txt", StringComparison.OrdinalIgnoreCase))
                {
                    // Gets the full path to ensure that relative segments are removed.
                    string destinationPath = Path.GetFullPath(Path.Combine(extractPath, entry.FullName));

                    // Ordinal match is safest, case-sensitive volumes can be mounted within volumes that
                    // are case-insensitive.
                    if (destinationPath.StartsWith(extractPath, StringComparison.Ordinal))
                        entry.ExtractToFile(destinationPath);
                }
            }
        }
    }
}

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0