Share via


ZipFileExtensions.CreateEntryFromFile Metode

Definisi

Mengarsipkan file dengan mengompresinya dan menambahkannya ke arsip zip.

Overload

CreateEntryFromFile(ZipArchive, String, String)

Mengarsipkan file dengan mengompresinya dan menambahkannya ke arsip zip.

CreateEntryFromFile(ZipArchive, String, String, CompressionLevel)

Mengarsipkan file dengan mengompresinya menggunakan tingkat kompresi yang ditentukan dan menambahkannya ke arsip zip.

CreateEntryFromFile(ZipArchive, String, String)

Sumber:
ZipFileExtensions.ZipArchive.Create.cs
Sumber:
ZipFileExtensions.ZipArchive.Create.cs
Sumber:
ZipFileExtensions.ZipArchive.Create.cs

Mengarsipkan file dengan mengompresinya dan menambahkannya ke arsip zip.

public:
[System::Runtime::CompilerServices::Extension]
 static System::IO::Compression::ZipArchiveEntry ^ CreateEntryFromFile(System::IO::Compression::ZipArchive ^ destination, System::String ^ sourceFileName, System::String ^ entryName);
public static System.IO.Compression.ZipArchiveEntry CreateEntryFromFile (this System.IO.Compression.ZipArchive destination, string sourceFileName, string entryName);
static member CreateEntryFromFile : System.IO.Compression.ZipArchive * string * string -> System.IO.Compression.ZipArchiveEntry
<Extension()>
Public Function CreateEntryFromFile (destination As ZipArchive, sourceFileName As String, entryName As String) As ZipArchiveEntry

Parameter

destination
ZipArchive

Arsip zip untuk menambahkan file.

sourceFileName
String

Jalur ke file yang akan diarsipkan. Anda dapat menentukan jalur relatif atau absolut. Jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini.

entryName
String

Nama entri yang akan dibuat dalam arsip zip.

Mengembalikan

Pembungkus untuk entri baru dalam arsip zip.

Pengecualian

sourceFileName adalah Empty, hanya berisi spasi kosong, atau berisi setidaknya satu karakter yang tidak valid.

-atau-

entryNameadalah Empty.

sourceFileName atau entryName adalah null.

Dalam sourceFileName, jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.

sourceFileName tidak valid (misalnya, ada di drive yang tidak dipetakan).

File yang ditentukan oleh sourceFileName tidak dapat dibuka, atau terlalu besar untuk diperbarui (batas saat ini adalah Int32.MaxValue).

sourceFileName menentukan direktori.

-atau-

Pemanggil tidak memiliki izin yang diperlukan untuk mengakses file yang ditentukan oleh sourceFileName.

File yang ditentukan oleh sourceFileName tidak ditemukan.

Parameter sourceFileName dalam format yang tidak valid.

-atau-

Arsip zip tidak mendukung penulisan.

Arsip zip telah dibuang.

Contoh

Contoh berikut menunjukkan cara membuat entri baru dalam arsip zip dari file yang sudah ada.

using System;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string zipPath = @"c:\users\exampleuser\start.zip";
            string extractPath = @"c:\users\exampleuser\extract";
            string newFile = @"c:\users\exampleuser\NewFile.txt";

            using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update))
            {
                archive.CreateEntryFromFile(newFile, "NewEntry.txt");
                archive.ExtractToDirectory(extractPath);
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim zipPath As String = "c:\users\exampleuser\end.zip"
        Dim extractPath As String = "c:\users\exampleuser\extract"
        Dim newFile As String = "c:\users\exampleuser\NewFile.txt"

        Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
            archive.CreateEntryFromFile(newFile, "NewEntry.txt", CompressionLevel.Fastest)
            archive.ExtractToDirectory(extractPath)
        End Using
    End Sub

End Module

Keterangan

Entri baru dalam arsip berisi konten file yang ditentukan oleh sourceFileName. Jika entri dengan nama yang ditentukan (entryName) sudah ada dalam arsip, entri kedua dibuat dengan nama yang identik. Properti LastWriteTime entri diatur ke terakhir kali file pada sistem file diubah.

Ketika ZipArchiveMode.Update ada, batas ukuran entri terbatas pada Int32.MaxValue. Batas ini karena mode pembaruan menggunakan MemoryStream secara internal untuk memungkinkan pencarian yang diperlukan saat memperbarui arsip, dan MemoryStream memiliki maksimum yang sama dengan ukuran int.

Berlaku untuk

CreateEntryFromFile(ZipArchive, String, String, CompressionLevel)

Sumber:
ZipFileExtensions.ZipArchive.Create.cs
Sumber:
ZipFileExtensions.ZipArchive.Create.cs
Sumber:
ZipFileExtensions.ZipArchive.Create.cs

Mengarsipkan file dengan mengompresinya menggunakan tingkat kompresi yang ditentukan dan menambahkannya ke arsip zip.

public:
[System::Runtime::CompilerServices::Extension]
 static System::IO::Compression::ZipArchiveEntry ^ CreateEntryFromFile(System::IO::Compression::ZipArchive ^ destination, System::String ^ sourceFileName, System::String ^ entryName, System::IO::Compression::CompressionLevel compressionLevel);
public static System.IO.Compression.ZipArchiveEntry CreateEntryFromFile (this System.IO.Compression.ZipArchive destination, string sourceFileName, string entryName, System.IO.Compression.CompressionLevel compressionLevel);
static member CreateEntryFromFile : System.IO.Compression.ZipArchive * string * string * System.IO.Compression.CompressionLevel -> System.IO.Compression.ZipArchiveEntry
<Extension()>
Public Function CreateEntryFromFile (destination As ZipArchive, sourceFileName As String, entryName As String, compressionLevel As CompressionLevel) As ZipArchiveEntry

Parameter

destination
ZipArchive

Arsip zip untuk menambahkan file.

sourceFileName
String

Jalur ke file yang akan diarsipkan. Anda dapat menentukan jalur relatif atau absolut. Jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini.

entryName
String

Nama entri yang akan dibuat dalam arsip zip.

compressionLevel
CompressionLevel

Salah satu nilai enumerasi yang menunjukkan apakah akan menekankan kecepatan atau efektivitas kompresi saat membuat entri.

Mengembalikan

Pembungkus untuk entri baru dalam arsip zip.

Pengecualian

sourceFileName adalah Empty, hanya berisi spasi kosong, atau berisi setidaknya satu karakter yang tidak valid.

-atau-

entryNameadalah Empty.

sourceFileName atau entryName adalah null.

sourceFileName tidak valid (misalnya, ada di drive yang tidak dipetakan).

Dalam sourceFileName, jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.

File yang ditentukan oleh sourceFileName tidak dapat dibuka, atau terlalu besar untuk diperbarui (batas saat ini adalah Int32.MaxValue).

sourceFileName menentukan direktori.

-atau-

Pemanggil tidak memiliki izin yang diperlukan untuk mengakses file yang ditentukan oleh sourceFileName.

File yang ditentukan oleh sourceFileName tidak ditemukan.

Parameter sourceFileName dalam format yang tidak valid.

-atau-

Arsip zip tidak mendukung penulisan.

Arsip zip telah dibuang.

Contoh

Contoh berikut menunjukkan cara membuat entri baru dalam arsip zip dari file yang ada, dan menentukan tingkat kompresi.

using System;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string zipPath = @"c:\users\exampleuser\start.zip";
            string extractPath = @"c:\users\exampleuser\extract";
            string newFile = @"c:\users\exampleuser\NewFile.txt";

            using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update))
            {
                archive.CreateEntryFromFile(newFile, "NewEntry.txt", CompressionLevel.Fastest);
                archive.ExtractToDirectory(extractPath);
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim zipPath As String = "c:\users\exampleuser\end.zip"
        Dim extractPath As String = "c:\users\exampleuser\extract"
        Dim newFile As String = "c:\users\exampleuser\NewFile.txt"

        Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
            archive.CreateEntryFromFile(newFile, "NewEntry.txt", CompressionLevel.Fastest)
            archive.ExtractToDirectory(extractPath)
        End Using
    End Sub

End Module

Keterangan

Entri baru dalam arsip berisi konten file yang ditentukan oleh sourceFileName. Jika entri dengan nama yang ditentukan (entryName) sudah ada dalam arsip, entri kedua dibuat dengan nama yang identik. Properti LastWriteTime entri diatur ke terakhir kali file pada sistem file diubah.

Ketika ZipArchiveMode.Update ada, batas ukuran entri terbatas pada Int32.MaxValue. Batas ini karena mode pembaruan menggunakan MemoryStream secara internal untuk memungkinkan pencarian yang diperlukan saat memperbarui arsip, dan MemoryStream memiliki maksimum yang sama dengan ukuran int.

Berlaku untuk