mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
FIX: Zip plugin: Don't create empty dummy files in the archive when file or directory does not exist.
This commit is contained in:
parent
9de0d76b41
commit
26117e617e
2 changed files with 40 additions and 38 deletions
|
|
@ -297,7 +297,8 @@ var
|
|||
UncompressedStream : TStream;
|
||||
AttrEx : TAbAttrExRec;
|
||||
begin
|
||||
AbFileGetAttrEx(Item.DiskFileName, AttrEx);
|
||||
if not AbFileGetAttrEx(Item.DiskFileName, AttrEx) then
|
||||
Raise EAbFileNotFound.Create;
|
||||
if ((AttrEx.Attr and faDirectory) <> 0) then
|
||||
UncompressedStream := TMemoryStream.Create
|
||||
else
|
||||
|
|
|
|||
|
|
@ -1869,43 +1869,44 @@ Index: AbZipPrc.pas
|
|||
--- AbZipPrc.pas (revision 512)
|
||||
+++ AbZipPrc.pas (working copy)
|
||||
@@ -67,7 +67,8 @@
|
||||
AbVMStrm,
|
||||
AbDfBase,
|
||||
AbDfEnc,
|
||||
- AbSpanSt;
|
||||
+ AbSpanSt,
|
||||
+ DCClassesUtf8;
|
||||
|
||||
|
||||
{ ========================================================================== }
|
||||
@@ -294,22 +295,13 @@
|
||||
OutStream : TStream );
|
||||
var
|
||||
UncompressedStream : TStream;
|
||||
- SaveDir : string;
|
||||
AttrEx : TAbAttrExRec;
|
||||
begin
|
||||
- GetDir(0, SaveDir);
|
||||
- try {SaveDir}
|
||||
- if (Sender.BaseDirectory <> '') then
|
||||
- ChDir(Sender.BaseDirectory);
|
||||
- AbFileGetAttrEx(Item.DiskFileName, AttrEx);
|
||||
- if ((AttrEx.Attr and faDirectory) <> 0) then
|
||||
- UncompressedStream := TMemoryStream.Create
|
||||
- else
|
||||
- UncompressedStream :=
|
||||
- TFileStream.Create(Item.DiskFileName, fmOpenRead or fmShareDenyWrite);
|
||||
- finally {SaveDir}
|
||||
- ChDir( SaveDir );
|
||||
- end; {SaveDir}
|
||||
+ AbFileGetAttrEx(Item.DiskFileName, AttrEx);
|
||||
+ if ((AttrEx.Attr and faDirectory) <> 0) then
|
||||
+ UncompressedStream := TMemoryStream.Create
|
||||
+ else
|
||||
+ UncompressedStream := TFileStreamEx.Create(Item.DiskFileName, fmOpenRead or fmShareDenyWrite);
|
||||
try {UncompressedStream}
|
||||
{$IFDEF UNIX}
|
||||
Item.ExternalFileAttributes := LongWord(AttrEx.Mode) shl 16 + LongWord(AttrEx.Attr);
|
||||
AbVMStrm,
|
||||
AbDfBase,
|
||||
AbDfEnc,
|
||||
- AbSpanSt;
|
||||
+ AbSpanSt,
|
||||
+ DCClassesUtf8;
|
||||
|
||||
|
||||
{ ========================================================================== }
|
||||
@@ -294,22 +295,14 @@
|
||||
OutStream : TStream );
|
||||
var
|
||||
UncompressedStream : TStream;
|
||||
- SaveDir : string;
|
||||
AttrEx : TAbAttrExRec;
|
||||
begin
|
||||
- GetDir(0, SaveDir);
|
||||
- try {SaveDir}
|
||||
- if (Sender.BaseDirectory <> '') then
|
||||
- ChDir(Sender.BaseDirectory);
|
||||
- AbFileGetAttrEx(Item.DiskFileName, AttrEx);
|
||||
- if ((AttrEx.Attr and faDirectory) <> 0) then
|
||||
- UncompressedStream := TMemoryStream.Create
|
||||
- else
|
||||
- UncompressedStream :=
|
||||
- TFileStream.Create(Item.DiskFileName, fmOpenRead or fmShareDenyWrite);
|
||||
- finally {SaveDir}
|
||||
- ChDir( SaveDir );
|
||||
- end; {SaveDir}
|
||||
+ if not AbFileGetAttrEx(Item.DiskFileName, AttrEx) then
|
||||
+ Raise EAbFileNotFound.Create;
|
||||
+ if ((AttrEx.Attr and faDirectory) <> 0) then
|
||||
+ UncompressedStream := TMemoryStream.Create
|
||||
+ else
|
||||
+ UncompressedStream := TFileStreamEx.Create(Item.DiskFileName, fmOpenRead or fmShareDenyWrite);
|
||||
try {UncompressedStream}
|
||||
{$IFDEF UNIX}
|
||||
Item.ExternalFileAttributes := LongWord(AttrEx.Mode) shl 16 + LongWord(AttrEx.Attr);
|
||||
Index: AbZipTyp.pas
|
||||
===================================================================
|
||||
--- AbZipTyp.pas (revision 512)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue