Class SharArchive

Class SharArchive

Namespace: Aspose.Zip.Shar
Assembly: Aspose.Zip.dll (25.1.0)

此类表示 shar 压缩档案文件。

public class SharArchive : IDisposable

继承

objectSharArchive

实现

IDisposable

继承成员

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

构造函数

SharArchive()

初始化 Aspose.Zip.Shar.SharArchive 类的新实例。

public SharArchive()

示例

以下示例演示如何压缩文件。

using (var archive = new SharArchive())
{
    archive.CreateEntry("first.bin", "data.bin");
    archive.Save("archive.shar");
}

SharArchive(string)

初始化准备解压的 Aspose.Zip.Shar.SharArchive 类的新实例。

public SharArchive(string path)

参数

path string

压缩档案的源路径。

异常

ArgumentNullException

path 为 null。

SecurityException

调用者没有访问所需的权限。

ArgumentException

path 为空,仅包含空格或包含无效字符。

UnauthorizedAccessException

访问文件 path 被拒绝。

PathTooLongException

指定的 path、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。

NotSupportedException

path 中间包含冒号 (:)。

FileNotFoundException

未找到文件。

DirectoryNotFoundException

指定的路径无效,例如位于未映射的驱动器上。

IOException

文件已打开。

属性

Entries

获取构成压缩档案的 Aspose.Zip.Shar.SharEntry 类型的条目。

public ReadOnlyCollection<sharentry> Entries { get; }

属性值

ReadOnlyCollection<SharEntry&gt;

方法

CreateEntries(string, bool)

将指定目录中的所有文件和目录递归地添加到压缩档案中。

public SharArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)

参数

sourceDirectory string

要压缩的目录。

includeRootDirectory bool

指示是否包括根目录本身。

返回

SharArchive

Shar 条目实例。

示例

using (FileStream sharFile = File.Open("archive.shar", FileMode.Create))
{
    using (var archive = new SharArchive())
    {
        archive.CreateEntries("C:\folder", false);
        archive.Save(sharFile);
    }
}

异常

ArgumentNullException

sourceDirectory 为 null。

SecurityException

调用者没有访问 sourceDirectory 的权限。

ArgumentException

sourceDirectory 包含无效字符,如 “, <, > 或 |。

PathTooLongException

指定的路径、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。指定的路径、文件名或两者过长。

IOException

sourceDirectory 代表一个文件,而不是一个目录。

CreateEntries(DirectoryInfo, bool)

将指定目录中的所有文件和目录递归地添加到压缩档案中。

public SharArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)

参数

directory DirectoryInfo

要压缩的目录。

includeRootDirectory bool

指示是否包括根目录本身。

返回

SharArchive

Shar 条目实例。

示例

using (FileStream sharFile = File.Open("archive.shar", FileMode.Create))
{
    using (var archive = new SharArchive())
    {
        archive.CreateEntries(new DirectoryInfo("C:\folder"), false);
        archive.Save(sharFile);
    }
}

异常

ArgumentNullException

directory 为 null。

SecurityException

调用者没有访问 directory 的权限。

IOException

directory 代表一个文件,而不是一个目录。

CreateEntry(string, FileInfo, bool)

在压缩档案中创建单个条目。

public SharEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false)

参数

name string

条目的名称。

fileInfo FileInfo

要压缩的文件或文件夹的元数据。

openImmediately bool

如果立即打开文件则为 true,否则在保存压缩档案时打开文件。

返回

SharEntry

Shar 条目实例。

示例

FileInfo fileInfo = new FileInfo("data.bin");
using (var archive = new SharArchive())
{
    archive.CreateEntry("test.bin", fileInfo);
    archive.Save("archive.shar");
}

备注

如果使用 openImmediately 参数立即打开文件,则在压缩档案被释放之前,该文件将被锁定。

异常

ArgumentNullException

name 为 null。

ArgumentException

name 为空。

ArgumentNullException

fileInfo 为 null。

CreateEntry(string, string, bool)

在压缩档案中创建单个条目。

public SharEntry CreateEntry(string name, string sourcePath, bool openImmediately = false)

参数

name string

条目的名称。

sourcePath string

要压缩的文件路径。

openImmediately bool

如果立即打开文件则为 true,否则在保存压缩档案时打开文件。

返回

SharEntry

Shar 条目实例。

示例

using (var archive = new SharArchive())
{
    archive.CreateEntry("first.bin", "data.bin");
    archive.Save("archive.shar");
}

备注

条目名称仅在 name 参数中设置。sourcePath 参数中提供的文件名不影响条目名称。

如果使用 openImmediately 参数立即打开文件,则在压缩档案被释放之前,该文件将被锁定。

异常

ArgumentNullException

sourcePath 为 null。

SecurityException

调用者没有访问权限。

ArgumentException

sourcePath 为空,仅包含空格或包含无效字符。 - 或 - 文件名作为 name 的一部分,超过 100 个符号。

UnauthorizedAccessException

访问文件 sourcePath 被拒绝。

PathTooLongException

指定的 sourcePath、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。 - 或 - name 对于 shar 来说过长。

NotSupportedException

sourcePath 中间包含冒号 (:)。

CreateEntry(string, Stream)

在压缩档案中创建单个条目。

public SharEntry CreateEntry(string name, Stream source)

参数

name string

条目的名称。

source Stream

条目的输入流。

返回

SharEntry

Shar 条目实例。

示例

using (var archive = new SharArchive())
{
    archive.CreateEntry("data.bin", File.OpenRead("data.bin"));
    archive.Save("archive.shar");
}

异常

ArgumentNullException

name 为 null。

ArgumentNullException

source 为 null。

ArgumentException

name 为空。

DeleteEntry(SharEntry)

从条目列表中移除特定条目的第一次出现。

public SharArchive DeleteEntry(SharEntry entry)

参数

entry SharEntry

要从条目列表中移除的条目。

返回

SharArchive

Shar 条目实例。

示例

以下是如何移除所有条目,除了最后一个:

using (var archive = new SharArchive("archive.shar"))
{
    while (archive.Entries.Count &gt; 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save(outputSharFile);
}

异常

ArgumentNullException

entry 为 null。

DeleteEntry(int)

通过索引从条目列表中移除条目。

public SharArchive DeleteEntry(int entryIndex)

参数

entryIndex int

要移除的条目的零基索引。

返回

SharArchive

删除条目的档案。

示例

using (var archive = new SharArchive("two_files.shar"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.shar");
}

异常

ArgumentOutOfRangeException

entryIndex 小于 0。- 或 - entryIndex 等于或大于 Entries 的计数。

Dispose(bool)

执行与释放、释放或重置非托管资源相关的应用程序定义的任务。

protected virtual void Dispose(bool disposing)

参数

disposing bool

是否应释放托管资源。

Dispose()

执行与释放、释放或重置非托管资源相关的应用程序定义的任务。

public void Dispose()

Save(string)

将压缩档案保存到指定的目标文件。

public void Save(string destinationFileName)

参数

destinationFileName string

要创建的压缩档案的路径。如果指定的文件名指向现有文件,则将被覆盖。

示例

using (var archive = new SharArchive())
{
    archive.CreateEntry("entry1", "data.bin");        
    archive.Save("archive.shar");
}

备注

可以将压缩档案保存到加载的相同路径。 但是,不推荐这种做法,因为这种方法需要复制到临时文件。

异常

ArgumentException

destinationFileName 是一个零长度字符串,仅包含空格,或包含一个或多个无效字符,如 System.IO.Path.InvalidPathChars 所定义的。

ArgumentNullException

destinationFileName 为 null。

PathTooLongException

指定的 destinationFileName、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。

DirectoryNotFoundException

指定的 destinationFileName 无效(例如,它位于未映射的驱动器上)。

IOException

打开文件时发生 I/O 错误。

UnauthorizedAccessException

destinationFileName 指定的文件为只读且访问权限不是读取。- 或 - 指定的路径为目录。- 或 - 调用者没有所需的权限。

NotSupportedException

destinationFileName 格式无效。

FileNotFoundException

未找到文件。

Save(Stream)

将压缩档案保存到提供的流中。

public void Save(Stream output)

参数

output Stream

目标流。

示例

using (FileStream sharFile = File.Open("archive.shar", FileMode.Create))
{
    using (var archive = new SharArchive())
    {
        archive.CreateEntry("entry1", "data.bin");        
        archive.Save(sharFile);
    }
}

备注

output 必须是可写的。

异常

ArgumentNullException

output 为 null。

ArgumentException

output 不是可写的。- 或 - output 是我们提取的同一流。

 中文