[fpc-pascal] Adding files to a tar file

luciano de souza luchyanus at gmail.com
Wed Jan 22 02:31:37 CET 2014


Yes, that's the mistake. I forgot the fact "search.name" does not
returns a full path. This code works very well.
program e01;
{$mode objfpc}{$H+}

uses
libtar, sysutils;

var
archive: TTarWriter;
search: TSearchRec;
path: string;

BEGIN
archive := TTarWriter.create('arquivo.tar');
with archive do
begin
try
path := paramstr(1);
FindFirst(path + '/*', faAnyFile, search);
repeat
if (search.name <> '.') and (search.name <> '..') then
AddFile(path + '/' + search.name);
until FindNext(Search) = 0;
finally
free;
end;
end;
END.

Thank you! This class is really very easy to use.

2014/1/21, Flávio Etrusco <flavio.etrusco at gmail.com>:
> On Tue, Jan 21, 2014 at 10:45 PM, luciano de souza <luchyanus at gmail.com>
> wrote:
>> Hello all,
>>
>> This code should add all the files of a directory in a tar file.
>>
>> program e01;
>> {$mode objfpc}{$H+}
>>
>> uses
>> libtar, sysutils;
>>
>> var
>> archive: TTarWriter;
>> search: TSearchRec;
>>
>> BEGIN
>> archive := TTarWriter.create('arquivo.tar');
>> with archive do
>> begin
>> try
>> FindFirst('/home/luciano/Documentos/*', faAnyFile, search);
>> repeat
>> if (search.name <> '.') and (search.name <> '..') then
>> AddFile(search.name);
>> until FindNext(Search) = 0;
>> finally
>> free;
>> end;
>> end;
>> END.
>>
>> The program compiles, but I got an error. The message says that the
>> first file of the directory can't be opened.
>>
>> What is wrong?
>
> Probably because Search.Name contains only the filename, but AddFile
> expects an absolute path (or relative to GetCurrentDir)?
>
>
>> My second doubt is: I am running this program in Ubuntu 13.10. If I
>> run it in Windows, will a external library be necessary or all the
>> code is included in lib tar unit?
>>
>> Regards,
>
> AFAICS all the code is included in the libtar unit.
>
> -Flávio
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>


-- 
Luciano de Souza



More information about the fpc-pascal mailing list