Archive.CreateEntry

CreateEntry(string, string, bool, ArchiveEntrySettings)

아카이브 내에 단일 항목을 생성합니다.

public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, 
    ArchiveEntrySettings newEntrySettings = null)
모수유형설명
nameString항목의 이름입니다.
pathString새 파일의 정규화된 이름 또는 압축할 상대 파일 이름입니다.
openImmediatelyBoolean파일을 즉시 열면 True이고, 그렇지 않으면 아카이브 저장 시 파일을 엽니다.
newEntrySettingsArchiveEntrySettings추가에 사용되는 압축 및 암호화 설정ArchiveEntry 안건.

반환 값

Zip 항목 인스턴스.

예외

예외상태
ArgumentNullExceptionpath null입니다.
SecurityException호출자에게 액세스에 필요한 권한이 없습니다.
ArgumentException그만큼path 비어 있거나 공백만 포함하거나 잘못된 문자를 포함합니다.
UnauthorizedAccessException파일에 대한 액세스path 거부되었습니다.
PathTooLongException지정된path, 파일 이름 또는 둘 다 시스템 정의 최대 길이를 초과합니다. 예를 들어 Windows 기반 플랫폼에서 경로는 248자 미만이어야 하고 파일 이름은 260자 미만이어야 합니다.
NotSupportedException파일 위치path 문자열 중간에 콜론(:)을 포함합니다.

비고

항목 이름은 단독으로 설정됩니다.name 매개변수. 에 제공된 파일 이름path 매개변수는 항목 이름에 영향을 주지 않습니다.

파일을 즉시 열면openImmediately 아카이브가 저장될 때까지 매개변수가 차단됩니다.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

또한보십시오


CreateEntry(string, Stream, ArchiveEntrySettings)

아카이브 내에 단일 항목을 생성합니다.

public ArchiveEntry CreateEntry(string name, Stream source, 
    ArchiveEntrySettings newEntrySettings = null)
모수유형설명
nameString항목의 이름입니다.
sourceStream항목의 입력 스트림입니다.
newEntrySettingsArchiveEntrySettings추가에 사용되는 압축 및 암호화 설정ArchiveEntry 안건.

반환 값

Zip 항목 인스턴스.

using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.zip");
}

또한보십시오


CreateEntry(string, FileInfo, bool, ArchiveEntrySettings)

아카이브 내에 단일 항목을 생성합니다.

public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, 
    ArchiveEntrySettings newEntrySettings = null)
모수유형설명
nameString항목의 이름입니다.
fileInfoFileInfo압축할 파일의 메타데이터입니다.
openImmediatelyBoolean파일을 즉시 열면 True이고, 그렇지 않으면 아카이브 저장 시 파일을 엽니다.
newEntrySettingsArchiveEntrySettings추가에 사용되는 압축 및 암호화 설정ArchiveEntry 안건.

반환 값

Zip 항목 인스턴스.

예외

예외상태
UnauthorizedAccessExceptionfileInfo 읽기 전용이거나 디렉토리입니다.
DirectoryNotFoundException매핑되지 않은 드라이브에 있는 것과 같이 지정된 경로가 잘못되었습니다.
IOException파일이 이미 열려 있습니다.

비고

항목 이름은 단독으로 설정됩니다.name 매개변수. 에 제공된 파일 이름fileInfo 매개변수는 항목 이름에 영향을 주지 않습니다.

파일을 즉시 열면openImmediately 아카이브가 저장될 때까지 매개변수가 차단됩니다.

각각 다른 암호화 방법과 비밀번호로 암호화된 항목으로 아카이브를 구성합니다.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")));
        archive.CreateEntry("entry2.bin", fi2, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass2", EncryptionMethod.AES128)));
        archive.CreateEntry("entry3.bin", fi3, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass3", EncryptionMethod.AES256)));
        archive.Save(zipFile);
    }
}

또한보십시오


CreateEntry(string, Stream, ArchiveEntrySettings, FileSystemInfo)

아카이브 내에 단일 항목을 생성합니다.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, 
    FileSystemInfo fileInfo)
모수유형설명
nameString항목의 이름입니다.
sourceStream항목의 입력 스트림입니다.
newEntrySettingsArchiveEntrySettings추가에 사용되는 압축 및 암호화 설정ArchiveEntry 안건.
fileInfoFileSystemInfo압축할 파일 또는 폴더의 메타데이터입니다.

반환 값

Zip 항목 인스턴스.

예외

예외상태
InvalidOperationException둘 다source 그리고fileInfo null이거나sourcenull이고fileInfo 디렉토리를 나타냅니다.

비고

항목 이름은 단독으로 설정됩니다.name 매개변수. 에 제공된 파일 이름fileInfo 매개변수는 항목 이름에 영향을 주지 않습니다.

fileInfo 참조할 수 있습니다DirectoryInfo 항목이 디렉토리인 경우.

암호화된 항목으로 아카이브를 작성합니다.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF} ), new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")), new FileInfo("data1.bin")); 
        archive.Save(zipFile);
    }
}

또한보십시오