Skip to content

[Bug]: 压缩包中的目录名后有空格的话,那么在windows平台解压创建目录时,系统就会把末尾的空格删除,导致解压失败! #316

@SPURSGO

Description

@SPURSGO

bit7z version

4.0.x

Compilation options

No response

7-zip version

v23.01

7-zip shared library used

7z.dll / 7z.so

Compilers

MSVC

Compiler versions

No response

Architecture

x86

Operating system

Windows

Operating system versions

No response

Bug description

我现在收到了一个压缩包,我尝试用bit7z库去解压它。但是解压总是失败,所以我就调试了bit7z的代码。
发现FileExtractCallback::getOutStream中抛出了异常(FileExtractCallback::getOutStream 81行)。
其中,在使用 fs::create_directories( mFilePathOnDisk.parent_path(), error ); 创建目录时,mFilePathOnDisk的值是:C:\Users\xxxx\temp_extract\2\02-cut vocals from song\cut vocals from song Infographics \download master vocal remover.jpg。其中"cut vocals from song Infographics "这一层目录名末尾是有一个空格的。但是create_directories同步创建返回之后,我在windows文件资源管理器里面看,实际的目录又是没有空格的。所以导致创建输出流的时候找不到文件路径,从而导致异常失败!

我不知道这个算不算bit7z在系统平台兼容性方面的BUG。
windows是不允许目录名最后有空格的,但是macos又是允许的。

Steps to reproduce

No response

Expected behavior

No response

Relevant compilation output

Code of Conduct

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions