mirror of
https://github.com/Drop-OSS/drop-app.git
synced 2026-07-20 14:10:13 -04:00
[GH-ISSUE #181] [BUG] Error 21: is a directory when installing a game from 7z archive
#98
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @fpiesche on GitHub (Feb 1, 2026).
Original GitHub issue: https://github.com/Drop-OSS/drop-app/issues/181
Describe the bug
Most of my library is in 7z archives. Trying to download any of them preallocates one or two of the files before failing out with a message saying "Error 21: is a directory". This happens even on archives that do not contain any directories.
To Reproduce
Steps to reproduce the behavior:
Install a 7z-compressed game.
Expected behavior
Installation should work.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Additional context
Add any other context about the problem here.
Terminal log excerpt:
@DecDuck commented on GitHub (Feb 5, 2026):
Can you confirm that it pre-allocates the correct structure? Is it preallocating directories where there should be files?
@fpiesche commented on GitHub (Feb 15, 2026):
Have done a bit more experimenting and I think this is the app tripping over spaces in file names in 7z archives again (as per https://github.com/Drop-OSS/droplet/issues/10).
This archive fails:
This will extract
cheers.txtandD3DX9_43.dlland then fail out with theis a directoryOSError. Note how all the files that aren't getting extracted have an emptyCompressedcolumn in the listing, and none of them have a space in the file name.Meanwhile, an archive that works But In A Funny Way:
All the files extract here and the game appears to install fine but doesn't work. The reason for this is that all the files with an empty
Compressedcolumn drop theDepthpart of the file name and extract instead to the subdirectoryof Extinction_Data(instead ofDepth of Extinction_Data); with the exception of the main executableDepth of Extinction.x86_64, which extracts asof Extinction.x86_64. Files in theDepth of Extinction_Datasubdirectory with a non-emptyCompressedcolumn extract into their correct location.And finally, here's the Windows version of Depth of Extinction, which fails to extract:
As with the Linux version, files with an empty
Compressedfield extract fine if they're in theDepth of Extinction_Datasubdirectory (but drop theDepthon extract); the files that aren't extracted are the ones with emptyCompressedvalues and no spaces in their file name.@DecDuck commented on GitHub (Feb 15, 2026):
I think we just have to ditch parsing the 7z output and use something with actual function calls, this is causing too many problems.
@fpiesche commented on GitHub (Feb 15, 2026):
it is Very bothersome that 7z does not have any kind of even vaguely reliably machine-parseable output
[BUG] `Error 21: is a directory` when installing a game from 7z archiveto [GH-ISSUE #181] [BUG] `Error 21: is a directory` when installing a game from 7z archive@DecDuck commented on GitHub (Mar 4, 2026):
Hey, just a heads up, I'm marking this as wontfix because it's a 7z error and we're moving away from it, not because you'll be stuck without a solution :)