Class XarArchive
Namespace: Aspose.Zip.Xar
Assembly: Aspose.Zip.dll (25.1.0)
此类表示 xar 存档文件。
public class XarArchive : IArchive, IDisposable
继承
实现
继承的成员
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
构造函数
XarArchive(XarCompressionSettings)
初始化 Aspose.Zip.Xar.XarArchive 类的新实例。
public XarArchive(XarCompressionSettings defaultCompressionSettings = null)
参数
defaultCompressionSettings
XarCompressionSettings
默认压缩设置,应用于存档的所有条目。
示例
以下示例演示如何压缩文件。
using (var archive = new XarArchive())
{
archive.CreateEntry("first.bin", "data.bin");
archive.Save("archive.xar");
}
XarArchive(Stream, XarLoadOptions)
初始化 Aspose.Zip.Xar.XarArchive 类的新实例,并组合可以从存档中提取的条目列表。
public XarArchive(Stream sourceStream, XarLoadOptions loadOptions = null)
参数
sourceStream
Stream
存档的来源。它必须是可查找的。
loadOptions
XarLoadOptions
加载存档的选项。
示例
以下示例演示如何提取所有条目到目录。
using (var archive = new XarArchive(File.OpenRead("archive.xar")))
{
archive.ExtractToDirectory("C:\\extracted");
}
备注
此构造函数不会解压任何条目。有关解压的详细信息,请参见 Aspose.Zip.Xar.XarFileEntry.Open 方法。
异常
sourceStream
为 null。
sourceStream
不是可查找的。
sourceStream
不是有效的 xar 存档。
XarArchive(string, XarLoadOptions)
初始化 Aspose.Zip.Xar.XarArchive 类的新实例,并组合可以从存档中提取的条目列表。
public XarArchive(string path, XarLoadOptions loadOptions = null)
参数
path
string
存档文件的路径。
loadOptions
XarLoadOptions
加载存档的选项。
示例
以下示例演示如何提取所有条目到目录。
using (var archive = new XarArchive("archive.xar"))
{
archive.ExtractToDirectory("C:\\extracted");
}
备注
此构造函数不会解压任何条目。有关解压的详细信息,请参见 Aspose.Zip.Xar.XarFileEntry.Open 方法。
异常
path
为 null。
调用者没有访问所需的权限。
path
为空,仅包含空格或包含无效字符。
访问文件 path
被拒绝。
指定的 path
、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。
path
中的文件包含冒号 (:)。
未找到文件。
指定的路径无效,例如位于未映射的驱动器上。
文件已打开。
path
中的文件不是有效的 xar 存档。
属性
Entries
获取构成存档的 Aspose.Zip.Xar.XarEntry 类型的条目。
public IEnumerable<xarentry> Entries { get; }
属性值
IEnumerable<XarEntry>
方法
CreateEntries(string, bool, XarCompressionSettings)
将指定目录中的所有文件和目录递归地添加到存档中。
public XarArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true, XarCompressionSettings compressionSettings = null)
参数
sourceDirectory
string
要压缩的目录。
includeRootDirectory
bool
指示是否包含根目录本身。
compressionSettings
XarCompressionSettings
用于添加 Aspose.Zip.Xar.XarEntry 项的压缩设置。
返回
Xar 条目实例。
示例
using (FileStream xarFile = File.Open("archive.xar", FileMode.Create))
{
using (var archive = new XarArchive())
{
archive.CreateEntries(@"C:\folder", false);
archive.Save(xarFile);
}
}
异常
sourceDirectory
为 null。
调用者没有访问 sourceDirectory
的所需权限。
sourceDirectory
包含无效字符,如 “、<、> 或 |。
指定的路径、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。指定的路径、文件名或两者太长。
sourceDirectory
代表一个文件,而不是一个目录。
CreateEntries(DirectoryInfo, bool, XarCompressionSettings)
将指定目录中的所有文件和目录递归地添加到存档中。
public XarArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true, XarCompressionSettings compressionSettings = null)
参数
directory
DirectoryInfo
要压缩的目录。
includeRootDirectory
bool
指示是否包含根目录本身。
compressionSettings
XarCompressionSettings
用于添加 Aspose.Zip.Xar.XarEntry 项的压缩设置。
返回
Xar 条目实例。
示例
using (FileStream xarFile = File.Open("archive.xar", FileMode.Create))
{
using (var archive = new XarArchive())
{
archive.CreateEntries(new DirectoryInfo(@"C:\folder"), false);
archive.Save(xarFile);
}
}
异常
directory
为 null。
调用者没有访问 directory
的所需权限。
directory
代表一个文件,而不是一个目录。
CreateEntry(string, FileInfo, bool, XarCompressionSettings)
在存档中创建单个条目。
public XarEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, XarCompressionSettings compressionSettings = null)
参数
name
string
条目的名称。
fileInfo
FileInfo
要压缩的文件或文件夹的元数据。
openImmediately
bool
如果立即打开文件,则为 true,否则在存档保存时打开文件。
compressionSettings
XarCompressionSettings
用于添加 Aspose.Zip.Xar.XarEntry 项的压缩设置。
返回
Xar 条目实例。
示例
FileInfo fileInfo = new FileInfo("data.bin");
using (var archive = new XarArchive())
{
archive.CreateEntry("test.bin", fileInfo);
archive.Save("archive.xar");
}
备注
如果使用 openImmediately
参数立即打开文件,则在存档被释放之前,该文件将被锁定。
异常
name
为 null。
name
为空。
fileInfo
为 null。
CreateEntry(string, string, bool, XarCompressionSettings)
在存档中创建单个条目。
public XarEntry CreateEntry(string name, string sourcePath, bool openImmediately = false, XarCompressionSettings compressionSettings = null)
参数
name
string
条目的名称。
sourcePath
string
要压缩的文件路径。
openImmediately
bool
如果立即打开文件,则为 true,否则在存档保存时打开文件。
compressionSettings
XarCompressionSettings
用于添加 Aspose.Zip.Xar.XarEntry 项的压缩设置。
返回
Xar 条目实例。
示例
using (var archive = new XarArchive())
{
archive.CreateEntry("first.bin", "data.bin");
archive.Save("archive.xar");
}
备注
条目名称仅在 name
参数中设置。sourcePath
参数中提供的文件名不会影响条目名称。
如果使用 openImmediately
参数立即打开文件,则在存档被释放之前,该文件将被锁定。
异常
sourcePath
为 null。
调用者没有访问所需的权限。
sourcePath
为空,仅包含空格,或包含无效字符。 - 或 - 文件名作为 name
的一部分,超过 100 个符号。
访问文件 sourcePath
被拒绝。
指定的 sourcePath
、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。 - 或 - name
对于 xar 来说太长。
sourcePath
中的文件包含冒号 (:)。
无法修改 xar 存档。
CreateEntry(string, Stream, XarCompressionSettings)
在存档中创建单个条目。
public XarEntry CreateEntry(string name, Stream source, XarCompressionSettings compressionSettings = null)
参数
name
string
条目的名称。
source
Stream
条目的输入流。
compressionSettings
XarCompressionSettings
用于添加 Aspose.Zip.Xar.XarEntry 项的压缩设置。
返回
Xar 条目实例。
示例
using (var archive = new XarArchive())
{
archive.CreateEntry("data.bin", File.OpenRead("data.bin"));
archive.Save("archive.xar");
}
异常
name
为 null。
source
为 null。
name
为空。
无法修改 xar 存档。
DeleteEntry(XarEntry)
从条目列表中删除特定条目的第一个出现。
public XarArchive DeleteEntry(XarEntry entry)
参数
entry
XarEntry
要从条目列表中删除的条目。
返回
Xar 条目实例。
示例
以下是如何删除所有条目,除了最后一个:
using (var archive = new XarArchive("archive.xar"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries.FirstOrDefault());
archive.Save(outputXarFile);
}
异常
entry
为 null。
Dispose()
执行与释放、释放或重置非托管资源相关的应用程序定义的任务。
public void Dispose()
Dispose(bool)
执行与释放、释放或重置非托管资源相关的应用程序定义的任务。
protected virtual void Dispose(bool disposing)
参数
disposing
bool
是否应释放托管资源。
ExtractToDirectory(string)
将存档中的所有文件提取到提供的目录。
public void ExtractToDirectory(string destinationDirectory)
参数
destinationDirectory
string
要放置提取文件的目录的路径。
示例
using (var archive = new XarArchive("archive.xar"))
{
archive.ExtractToDirectory("C:\\extracted");
}
备注
如果目录不存在,将会创建它。
异常
path 为 null
指定的路径、文件名或两者超过系统定义的最大长度。例如,在基于 Windows 的平台上,路径必须少于 248 个字符,文件名必须少于 260 个字符。
调用者没有访问现有目录的所需权限。
如果目录不存在,路径包含一个不是驱动器标签 (“C:") 的冒号字符 (:)。
path 是一个零长度字符串,仅包含空格,或包含一个或多个无效字符。您可以使用 System.IO.Path.GetInvalidPathChars 方法查询无效字符。 - 或 - path 以冒号字符 (:) 为前缀,或仅包含冒号字符。
指定路径的目录是一个文件。 - 或 - 网络名称未知。
存档已损坏。
Save(string, XarSaveOptions)
将存档保存到提供的目标文件。
public void Save(string destinationFileName, XarSaveOptions saveOptions = null)
参数
destinationFileName
string
要创建的存档的路径。如果指定的文件名指向一个现有文件,它将被覆盖。
saveOptions
XarSaveOptions
保存 xar 存档的选项。
异常
destinationFileName
为 null。
无法修改 xar 存档。
Save(Stream, XarSaveOptions)
将存档保存到提供的流中。
public void Save(Stream output, XarSaveOptions saveOptions = null)
参数
output
Stream
目标流。
saveOptions
XarSaveOptions
保存 xar 存档的选项。
异常
output
为 null。
output
不是可写/可读或不可查找。
无法修改 xar 存档。