我在我的应用程序中使用SharpZipLib来解压缩文件。我有一个文件夹,其中zip被复制并在那里提取。 ZIP和文件夹名称是一个guid。 文件夹大多包含1或2个平均大小为45kb的XML文件。
以下是存储所有文件的SAN存储(不完全相同):
\\ sharableFolder \ Folder1中\ FOLDER2 \ Folder3
几天前记录了错误。 每当执行解压缩操作时,都会连续记录以下错误:
尝试在文件上创建比文件系统支持的更多链接
我们搜索了这个问题,我们找到了以下链接:
https://msdn.microsoft.com/en-us/library/cc231199.aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/ms681383
但我们没有找到帮助来解决它。
我们检查了:
文件夹可以包含的文件和文件夹的限制
对于 FAT :单个文件夹中的最大文件数: 65,534
对于 NTFS :单个文件夹中的最大文件数: 4,294,967,295
我们假设ZIP文件没有问题。目前,总共存在 1,31,760 个文件(Zip和文件夹)。我们创建了1,00,000个ZIP文件,并使用ICSharpZipLib提取了相同数量的文件。总共有一个文件夹中有2,00,000个文件。我们假设文件夹不能包含1,31,760个文件失败。
我们尝试了替代代码来解压缩文件。这也行不通。
我们检查路径是否太长。但事实并非如此。路径已经达到极限。
我们尝试移出几千个文件。但是这个解决方案甚至没有用。
最后,我们创建了一个新文件夹,并使用新文件夹更新了路径。它运作正常。
但我想知道这个问题可能是什么原因。生产中的其他文件夹可能会发生这种情况。
感谢任何帮助。提前致谢
以下是堆栈跟踪:
型= “的 System.IO.IOException ”
message =“尝试在文件上创建比文件系统支持的更多链接。”
源= “mscorlib程序”
详细=“System.Exception的
System.IO.IOException:尝试在文件上创建比文件系统支持的更多链接。
at System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)
at System.IO.Directory.InternalCreateDirectory(String fullPath,String path,Object dirSecurityObj,Boolean checkHost)
at System.IO.Directory.InternalCreateDirectoryHelper(String path,Boolean checkHost)
at ICSharpCode.SharpZipLib.Zip.FastZip.ExtractEntry(ZipEntry entry)
at ICSharpCode.SharpZipLib.Zip.FastZip.ExtractZip(Stream inputStream,String targetDirectory,Overwrite overwrite,ConfirmOverwriteDelegate confirmDelegate,String fileFilter,String directoryFilter,Boolean restoreDateTime,Boolean isStreamOwner)
at ICSharpCode.SharpZipLib.Zip.FastZip.ExtractZip(String zipFileName,String targetDirectory,Overwrite overwrite,ConfirmOverwriteDelegate confirmDelegate,String fileFilter,String directoryFilter,Boolean restoreDateTime)
at MyProject.ProjectFile.File.UnzipFile(String ErrorFile,String& ErrorXMLPath,String& FEXMLPath,String mXMLPath)
at MyProject.ProjectFile.File.ValidateUnzippedFile(Object items)
---内部异常堆栈跟踪结束---