我正在创建一个将解析压缩文件的Windows窗体应用程序。我得到了一个例外
调试文件时出现System.IO.PathTooLongException 被解析和提取的名称超过259 字符。这里提到的一个关于Zeta Long Paths的帖子。
我已经通过Nuget包下载并在我的项目中使用它。
ZlpIOHelper可用于执行文件处理功能。
我通过对象资源管理器浏览了参考资料,无法确定如何使用Zeta长路径创建FileSteam。
FileStream fs = File.OpenRead(archiveFilenameIn);
Stream inStream = File.OpenRead(gzArchiveName);
Stream gzipStream = new GZipInputStream(inStream);
如何使用Zeta长路径实现上述功能?还是其他任何套餐?
不是重复的问题。 .NET版本是4.0并且特定于长路径包。
答案 0 :(得分:0)
通过 Zeta长路径创建FileStream不是自动的,但是可以的。
您必须首先获取/创建文件的 SafeFileHandle 。我还没有在 read 场景中进行过测试,但是这里有一个示例,说明如何在深度嵌套的路径上将一些Stream数据写入到您自己的FileStream中:
using (var fileHandle = ZlpIOHelper.CreateFileHandle(very_long_outputPath, ZetaLongPaths.Native.CreationDisposition.CreateAlways, ZetaLongPaths.Native.FileAccess.GenericAll, ZetaLongPaths.Native.FileShare.Read))
{
using (FileStream streamWriter = new System.IO.FileStream(fileHandle, System.IO.FileAccess.Write))
{
//Your code logic here
}
}