Patch level : 12.0 820
Files correlati : ve5.exe, ve5100a.msk Commento : Aggiunte funzione di zip unzip per file senza floppy
This commit is contained in:
parent
8a6a484f54
commit
76ab6fec41
@ -338,6 +338,23 @@ bool TArchive::zip(
|
|||||||
|
|
||||||
// @comm Il parametro <p pr_set> e' utilizzato per evitare errori di riaperture di files.
|
// @comm Il parametro <p pr_set> e' utilizzato per evitare errori di riaperture di files.
|
||||||
|
|
||||||
|
{
|
||||||
|
const TFilename workdir = dir;
|
||||||
|
const TString name = workdir.name();
|
||||||
|
// Nome del file compresso
|
||||||
|
TFilename work; work.tempdir(); work.add(name); work.ext("zip");
|
||||||
|
|
||||||
|
bool ok = zip(dir, work);
|
||||||
|
|
||||||
|
if (ok)
|
||||||
|
ok = fsplit_zip(work, floppy, desc);
|
||||||
|
else
|
||||||
|
error_box(TR("Compressione degli archivi errata o incompleta"));
|
||||||
|
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TArchive::zip(const char* dir, const TFilename& work)
|
||||||
{
|
{
|
||||||
safely_close_closeable_isamfiles();
|
safely_close_closeable_isamfiles();
|
||||||
|
|
||||||
@ -348,10 +365,6 @@ bool TArchive::zip(
|
|||||||
xvt_fsys_set_dir(&newdir); //passa alla directory dir che gli viene passata
|
xvt_fsys_set_dir(&newdir); //passa alla directory dir che gli viene passata
|
||||||
|
|
||||||
const TFilename workdir = dir;
|
const TFilename workdir = dir;
|
||||||
const TString name = workdir.name();
|
|
||||||
|
|
||||||
// Nome del file compresso
|
|
||||||
TFilename work; work.tempdir(); work.add(name); work.ext("zip");
|
|
||||||
|
|
||||||
TString title(TR("Archiviazione")); title << ' ' << workdir;
|
TString title(TR("Archiviazione")); title << ' ' << workdir;
|
||||||
TIndwin waitw(100, title, FALSE, FALSE);
|
TIndwin waitw(100, title, FALSE, FALSE);
|
||||||
@ -375,11 +388,6 @@ bool TArchive::zip(
|
|||||||
|
|
||||||
xvt_fsys_set_dir(&currdir); //torna a posizionarsi nella directory iniziale
|
xvt_fsys_set_dir(&currdir); //torna a posizionarsi nella directory iniziale
|
||||||
|
|
||||||
if (ok)
|
|
||||||
ok = fsplit_zip(work, floppy, desc);
|
|
||||||
else
|
|
||||||
error_box(TR("Compressione degli archivi errata o incompleta"));
|
|
||||||
|
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -494,6 +502,77 @@ bool TArchive::unzip(
|
|||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TArchive::unzip(
|
||||||
|
const char* dir, // @parm Directory di cui effettuare il restore
|
||||||
|
const char* fromdir, // @parm percorso da cui leggere i dati
|
||||||
|
bool tmp) // @parm Directory temporanea da utilizzare
|
||||||
|
// @syntax bool restore(const char* dir, char floppy, bool temp, bool pr_set);
|
||||||
|
// @syntax bool restore(long firm, char floppy, bool temp, bool pr_set);
|
||||||
|
// @comm Il parametro <p pr_set> e' utilizzato per evitare errori di riaperture di files.
|
||||||
|
{
|
||||||
|
TFilename work;
|
||||||
|
if (tmp)
|
||||||
|
work.tempdir();
|
||||||
|
else
|
||||||
|
work = dir;
|
||||||
|
|
||||||
|
TFilename output(dir);
|
||||||
|
output = output.name();
|
||||||
|
output.ext("zip");
|
||||||
|
|
||||||
|
TFilename dest; dest << fromdir;
|
||||||
|
|
||||||
|
if (!yesno_box(FR("Attenzione l'archivio %s\\%s verra' ripristinato\n"
|
||||||
|
"nel direttorio %s. Continuare?"),
|
||||||
|
fromdir, (const char*)output, (const char*)work))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
bool ok = work.exist();
|
||||||
|
if (!ok)
|
||||||
|
{
|
||||||
|
ok = yesno_box(FR("Non esiste il direttorio %s: si desidera crearlo?"), (const char*)work);
|
||||||
|
if (ok)
|
||||||
|
{
|
||||||
|
make_dir(work);
|
||||||
|
ok = work.exist();
|
||||||
|
}
|
||||||
|
if (!ok)
|
||||||
|
return error_box(FR("Impossibile accedere a %s"), (const char*)work);
|
||||||
|
}
|
||||||
|
|
||||||
|
TString title(TR("Ripristino")); title << ' ' << output;
|
||||||
|
TIndwin waitw(100, title, FALSE, FALSE);
|
||||||
|
|
||||||
|
safely_close_closeable_isamfiles();
|
||||||
|
|
||||||
|
TFilename restored;
|
||||||
|
restored.tempdir();
|
||||||
|
restored.add(output.name());
|
||||||
|
restored.ext("zip");
|
||||||
|
|
||||||
|
TFilename src;
|
||||||
|
src << fromdir << SLASH;
|
||||||
|
src << output.name();
|
||||||
|
src.ext("zip");
|
||||||
|
|
||||||
|
while (!src.exist())
|
||||||
|
{
|
||||||
|
if (!yesno_box("Impossibile aprire il file %s:\nSi desidera ritentare?",
|
||||||
|
(const char *)src))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (src.exist())
|
||||||
|
{
|
||||||
|
fcopy(src, restored);
|
||||||
|
}
|
||||||
|
ok = ::aga_unzip(restored, work);
|
||||||
|
if (ok)
|
||||||
|
remove(restored);
|
||||||
|
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
bool TArchive::unzip(int mode, long firm, char floppy, bool temp)
|
bool TArchive::unzip(int mode, long firm, char floppy, bool temp)
|
||||||
{
|
{
|
||||||
TString_array fl;
|
TString_array fl;
|
||||||
@ -513,6 +592,12 @@ bool TArchive::backup(const char* dir, char floppy, const char* desc, bool)
|
|||||||
return zip(dir, floppy, desc);
|
return zip(dir, floppy, desc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TArchive::backup(const char* dir, const char* dirdest, const char* desc, bool) const
|
||||||
|
{
|
||||||
|
TFilename work; work << dirdest; work.add(TFilename(dir).name()); work.ext("zip");
|
||||||
|
return zip(dir, work);
|
||||||
|
}
|
||||||
|
|
||||||
bool TArchive::backup(int mode, long firm, char floppy, const char* desc, bool)
|
bool TArchive::backup(int mode, long firm, char floppy, const char* desc, bool)
|
||||||
{
|
{
|
||||||
return zip(mode, firm, floppy, desc);
|
return zip(mode, firm, floppy, desc);
|
||||||
@ -522,6 +607,11 @@ bool TArchive::restore(const char* dir, char floppy, bool tmp, bool)
|
|||||||
{
|
{
|
||||||
return unzip(dir, floppy, tmp);
|
return unzip(dir, floppy, tmp);
|
||||||
}
|
}
|
||||||
|
bool TArchive::restore(const char* dir, const char* fromdir, bool tmp, bool)
|
||||||
|
{
|
||||||
|
|
||||||
|
return unzip(dir, fromdir, tmp);
|
||||||
|
}
|
||||||
|
|
||||||
bool TArchive::restore(int mode, long firm, char floppy, bool tmp, bool)
|
bool TArchive::restore(int mode, long firm, char floppy, bool tmp, bool)
|
||||||
{
|
{
|
||||||
|
@ -50,21 +50,29 @@ public:
|
|||||||
|
|
||||||
// @cmember Effettua il backup della directory
|
// @cmember Effettua il backup della directory
|
||||||
bool backup(const char* dir, char floppy, const char* desc, bool dummy = FALSE);
|
bool backup(const char* dir, char floppy, const char* desc, bool dummy = FALSE);
|
||||||
|
// @cmember Effettua il backup della directory in un percorso specificato
|
||||||
|
bool backup(const char* dir, const char* dirdest, const char* desc, bool dummy = FALSE) const;
|
||||||
// @cmember Effettua il backup della ditta
|
// @cmember Effettua il backup della ditta
|
||||||
bool backup(int mode, long firm, char floppy, const char* desc, bool pr_set=TRUE);
|
bool backup(int mode, long firm, char floppy, const char* desc, bool pr_set=TRUE);
|
||||||
|
|
||||||
// @cmember Effettua il restore della directory
|
// @cmember Effettua il restore della directory
|
||||||
bool restore(const char* dir, char floppy, bool temp, bool dummy = FALSE);
|
bool restore(const char* dir, char floppy, bool temp, bool dummy = FALSE);
|
||||||
|
// @cmember Effettua il restore della directory
|
||||||
|
bool restore(const char* dir, const char* fromdir, bool temp, bool dummy = FALSE);
|
||||||
// @cmember Effettua il restore della ditta
|
// @cmember Effettua il restore della ditta
|
||||||
bool restore(int mode, long firm, char floppy, bool temp, bool pr_set=TRUE);
|
bool restore(int mode, long firm, char floppy, bool temp, bool pr_set=TRUE);
|
||||||
|
|
||||||
// @cmember Effettua il backup della directory
|
// @cmember Effettua il backup della directory
|
||||||
bool zip(const char* dir, char floppy, const char* desc);
|
bool zip(const char* dir, char floppy, const char* desc);
|
||||||
|
// @cmember Effettua il backup della directory su percorso specificato nel file
|
||||||
|
static bool zip(const char* dir, const TFilename& work);
|
||||||
// @cmember Effettua il backup della ditta
|
// @cmember Effettua il backup della ditta
|
||||||
bool zip(int mode, long firm, char floppy, const char* desc);
|
bool zip(int mode, long firm, char floppy, const char* desc);
|
||||||
|
|
||||||
// @cmember Effettua il restore della directory
|
// @cmember Effettua il restore della directory
|
||||||
bool unzip(const char* dir, char floppy, bool temp);
|
bool unzip(const char* dir, char floppy, bool temp);
|
||||||
|
// @cmember Effettua il restore della directory
|
||||||
|
bool unzip(const char* dir, const char* fromdir, bool temp);
|
||||||
// @cmember Effettua il restore della ditta
|
// @cmember Effettua il restore della ditta
|
||||||
bool unzip(int mode, long firm, char floppy, bool temp);
|
bool unzip(int mode, long firm, char floppy, bool temp);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user