Class SharArchive
Namespace: Aspose.Zip.Shar
Assembly: Aspose.Zip.dll (25.1.0)
此类表示 shar 压缩档案文件。
public class SharArchive : 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
压缩档案的源路径。
异常
path
为 null。
调用者没有访问所需的权限。
path
为空,仅包含空格或包含无效字符。
访问文件 path
被拒绝。
指定的 path
、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。
path
中间包含冒号 (:)。
未找到文件。
指定的路径无效,例如位于未映射的驱动器上。
文件已打开。
属性
Entries
获取构成压缩档案的 Aspose.Zip.Shar.SharEntry 类型的条目。
public ReadOnlyCollection<sharentry> Entries { get; }
属性值
ReadOnlyCollection<SharEntry>
方法
CreateEntries(string, bool)
将指定目录中的所有文件和目录递归地添加到压缩档案中。
public SharArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
参数
sourceDirectory
string
要压缩的目录。
includeRootDirectory
bool
指示是否包括根目录本身。
返回
Shar 条目实例。
示例
using (FileStream sharFile = File.Open("archive.shar", FileMode.Create))
{
using (var archive = new SharArchive())
{
archive.CreateEntries("C:\folder", false);
archive.Save(sharFile);
}
}
异常
sourceDirectory
为 null。
调用者没有访问 sourceDirectory
的权限。
sourceDirectory
包含无效字符,如 “, <, > 或 |。
指定的路径、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。指定的路径、文件名或两者过长。
sourceDirectory
代表一个文件,而不是一个目录。
CreateEntries(DirectoryInfo, bool)
将指定目录中的所有文件和目录递归地添加到压缩档案中。
public SharArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
参数
directory
DirectoryInfo
要压缩的目录。
includeRootDirectory
bool
指示是否包括根目录本身。
返回
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);
}
}
异常
directory
为 null。
调用者没有访问 directory
的权限。
directory
代表一个文件,而不是一个目录。
CreateEntry(string, FileInfo, bool)
在压缩档案中创建单个条目。
public SharEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false)
参数
name
string
条目的名称。
fileInfo
FileInfo
要压缩的文件或文件夹的元数据。
openImmediately
bool
如果立即打开文件则为 true,否则在保存压缩档案时打开文件。
返回
Shar 条目实例。
示例
FileInfo fileInfo = new FileInfo("data.bin");
using (var archive = new SharArchive())
{
archive.CreateEntry("test.bin", fileInfo);
archive.Save("archive.shar");
}
备注
如果使用 openImmediately
参数立即打开文件,则在压缩档案被释放之前,该文件将被锁定。
异常
name
为 null。
name
为空。
fileInfo
为 null。
CreateEntry(string, string, bool)
在压缩档案中创建单个条目。
public SharEntry CreateEntry(string name, string sourcePath, bool openImmediately = false)
参数
name
string
条目的名称。
sourcePath
string
要压缩的文件路径。
openImmediately
bool
如果立即打开文件则为 true,否则在保存压缩档案时打开文件。
返回
Shar 条目实例。
示例
using (var archive = new SharArchive())
{
archive.CreateEntry("first.bin", "data.bin");
archive.Save("archive.shar");
}
备注
条目名称仅在 name
参数中设置。sourcePath
参数中提供的文件名不影响条目名称。
如果使用 openImmediately
参数立即打开文件,则在压缩档案被释放之前,该文件将被锁定。
异常
sourcePath
为 null。
调用者没有访问权限。
sourcePath
为空,仅包含空格或包含无效字符。 - 或 - 文件名作为 name
的一部分,超过 100 个符号。
访问文件 sourcePath
被拒绝。
指定的 sourcePath
、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。 - 或 - name
对于 shar 来说过长。
sourcePath
中间包含冒号 (:)。
CreateEntry(string, Stream)
在压缩档案中创建单个条目。
public SharEntry CreateEntry(string name, Stream source)
参数
name
string
条目的名称。
source
Stream
条目的输入流。
返回
Shar 条目实例。
示例
using (var archive = new SharArchive())
{
archive.CreateEntry("data.bin", File.OpenRead("data.bin"));
archive.Save("archive.shar");
}
异常
name
为 null。
source
为 null。
name
为空。
DeleteEntry(SharEntry)
从条目列表中移除特定条目的第一次出现。
public SharArchive DeleteEntry(SharEntry entry)
参数
entry
SharEntry
要从条目列表中移除的条目。
返回
Shar 条目实例。
示例
以下是如何移除所有条目,除了最后一个:
using (var archive = new SharArchive("archive.shar"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save(outputSharFile);
}
异常
entry
为 null。
DeleteEntry(int)
通过索引从条目列表中移除条目。
public SharArchive DeleteEntry(int entryIndex)
参数
entryIndex
int
要移除的条目的零基索引。
返回
删除条目的档案。
示例
using (var archive = new SharArchive("two_files.shar"))
{
archive.DeleteEntry(0);
archive.Save("single_file.shar");
}
异常
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");
}
备注
可以将压缩档案保存到加载的相同路径。 但是,不推荐这种做法,因为这种方法需要复制到临时文件。
异常
destinationFileName
是一个零长度字符串,仅包含空格,或包含一个或多个无效字符,如 System.IO.Path.InvalidPathChars 所定义的。
destinationFileName
为 null。
指定的 destinationFileName
、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。
指定的 destinationFileName
无效(例如,它位于未映射的驱动器上)。
打开文件时发生 I/O 错误。
destinationFileName
指定的文件为只读且访问权限不是读取。- 或 - 指定的路径为目录。- 或 - 调用者没有所需的权限。
destinationFileName
格式无效。
未找到文件。
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
必须是可写的。
异常
output
为 null。
output
不是可写的。- 或 - output
是我们提取的同一流。