Windows系统中如何向ZIP压缩包添加顶级空目录
Windows系统中如何向ZIP压缩包添加顶级空目录
嘿,这个问题我之前也碰到过!Windows自带的压缩功能确实有点“挑剔”——嵌套的空文件夹能正常添加,但顶级空文件夹就会弹出报错:
指定的目录为空,因此无法将其添加到存档中。
Windows无法将一个或多个空目录添加到压缩(zipped)文件夹。
别担心,给你几个简单的解决办法,挑适合你的来用:
方法一:临时加个空文件(小白友好)
这是最直观的办法,不需要敲命令:
- 打开那个要添加的空顶级文件夹
- 右键新建一个空的文本文档(随便起个名,比如
temp.txt就行) - 现在文件夹不再是空的了,直接把它拖进压缩包
- 压缩完成后,打开压缩包找到那个临时文件,右键删掉它——压缩包里就留下了空的顶级文件夹啦
方法二:用PowerShell快速搞定(高效批量)
如果经常需要处理这类需求,用命令行更方便:
- 按下Win+X,选「Windows PowerShell」或者「终端」(Win11)
- 把下面的命令里的路径换成你自己的,直接执行:
👉 注意!路径末尾的反斜杠# 示例:把C盘的MyEmptyFolder空文件夹压缩成C盘的MyArchive.zip Compress-Archive -Path "C:\MyEmptyFolder\" -DestinationPath "C:\MyArchive.zip" -Force\一定要加上,它告诉PowerShell要压缩文件夹本身,而不是里面的内容。执行完你就会发现空文件夹已经乖乖待在压缩包里了。
方法三:CMD调用.NET类(进阶玩法)
如果你习惯用CMD,也可以这么操作:
- 打开CMD,切换到你要放压缩包的目录
- 先创建一个空zip文件(如果还没有的话):
echo. > EmptyArchive.zip - 然后执行下面的命令,替换成你的空文件夹路径和想要在压缩包里显示的名称:
powershell -Command "Add-Type -AssemblyName System.IO.Compression.FileSystem; $zip = [System.IO.Compression.ZipFile]::Open('EmptyArchive.zip', 'Update'); [System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($zip, 'C:\MyEmptyFolder', 'MyEmptyFolder'); $zip.Dispose()"
备注:内容来源于stack exchange,提问作者Pluto




