ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Zipper et unZipper avec Shell.Application et Window XP   



L'auteur

Mike Gagnon
Canada Canada
Membre Simple
# 0000000025
enregistré le 14/10/2004

Gagnon Mike
Pointe Cla H9R 3K8
de la société Carver Technologies Inc.
Fiche personnelle


Note des membres
18/20
1 vote


Contributions > 09 - Automation > Zip

Zipper et unZipper avec Shell.Application et Window XP
# 0000000190
ajouté le 16/05/2005 15:02:06 et modifié le 30/04/2006
consulté 20941 fois
Niveau initié

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0

Description

Voici comment utiliser le Zip et Unzip de Windows XP avec shell.application

À noter qui est possible (rumeur possible) que Microsoft ne permette pas de distribuer ce code. Je n'ai aucune confirmation sur le sujet.

Le troisème example permet aussi d'obtenir l'infomation sur un fichier qui a été encrypté (SHA, MD5 etc..) en utlisant le propriété oFile.ExtendedProperty(). Ceci requiert CAPICOM 2.0 minimum.. Cette technique pourrait aussi etre utilser pour lire les certificats encryptés, les signatures digitales, les politiques de certificat pour le objets encrypté.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/seccrypto/security/capicom_propid.asp

Code source :
&& Zipper plusieurs fichiers - A noter que les dossiers doivent exister.

cFileZip = "C:\temp2\D401001F.ZIP"
cSource = "c:\temp1\"
strtofile(chr(0x50)+chr(0x4B)+chr(0x05)+chr(0x06)+replicate(chr(0),18),cFileZip) && Créer un fichier zip
o=CREATEOBJECT("shell.application")
FOR EACH ofile IN o.NameSpace(cSource).items
   o.NameSpace(cFileZip).copyhere(ofile)
ENDFOR

&& Unzipper - Cette contribution a été faite par Thierry sur le Newsgroup

cFileZip = "C:\temp\D401001F.ZIP"
cDestination = "c:\temp\"

o=CREATEOBJECT("shell.application")
FOR EACH ofile IN o.NameSpace(cFileZip).items
    o.NameSpace(cDestination).copyhere(ofile)
ENDFOR

&& Comment obtenir l'information sur les fichiers contenu dans un fichier zip, sans les décompresser

CREATE CURSOR mesfichierszip (nom c(30),type c(30),;
modidate T, systeme L, dossier L,chemin c(60),grosseur N(10))
cFileZip = "C:\temp\license.ZIP"
o=CREATEOBJECT("shell.application")
FOR EACH ofile IN o.NameSpace(cFileZip).items
  INSERT INTO mesfichierszip (nom,type,modidate,;
  systeme,dossier,chemin,grosseur) VALUES (oFile.Name,;
  oFile.Type,oFile.ModifyDate,oFile.IsFileSystem,oFile.IsFolder,;
  oFile.Path,oFile.Size)
ENDFOR
BROWSE normal

Commentaires
le 17/05/2005, Francis Faure a écrit :
cool !!!
le 19/05/2005, FredA a écrit :
comment MS pourrait empêcher l'utilisation de ce code?
comment MS pourrati 'voir' que ce code fait ça?
à mon avis une rumeur infondée

le 19/05/2005, Thierry a écrit :
Je suis au courant de cette rumeur. Après lecture minutieuse des contrats de licence de Windows XP et de VFP, une restrictriction d'utilisation des fonctions ZIP de Explorer n'est pas mentionné.
Je donc donc d'accord Fred, MS n'a, me semble t-il, pas les moyens de l'interdire.
Il ne peuvent que le déconseiller (sera t-il supporté à l'identique dans Longhorn ?)

le 19/05/2005, Mike Gagnon a écrit :
J'ai seulement vu un commentaire de Fred Taylor (que n'est pas né d'hier), qui mentionnait un discussion sur UT il y a un an sur le sujet.
Microsoft says we're not licensed to use those routines in our own code.
There was a discussion about this on the UT (www.universalthread.com) about
a year or so ago.

le 18/05/2006, Mike Gagnon a écrit :
Thierry,

La rumeur a été vérifier. Microsoft utilise l'engin Dynazip pour zipper et dezipper dans Windows XP et pour utiliser les fonctions ci-haut il faut avoir une license valide de Dynazip.
Voici le texte:

I was very surprised to see your inventive approach to using the Windows XP
zip folders facilities from VFP and I want to take this opportunity to let
you know of some legal ramifications related to the approach you have
developed.

Third-party sub-licensing for using the Windows XP Shell zip folders via
programatic or automated means is not covered by Microsoft's DynaZip
license. To use DynaZip's facilities and programatic interfaces either
directly or indirectly, a developer must have a valid, legal license to
DynaZip. Please warn your readers that they will be exposed legally if
they intend to use the Windows XP zip folders facilities via programatic
or automated means without acquiring a license.

le 28/08/2007, FredA a écrit :
Salut Mike ...
De qui est ce texte???

le 28/08/2007, Mike Gagnon a écrit :
Je n'ai pas le nom, mais ce texte a été posté, il y a deux ans sur UT, par quelqu'un de DynaZip.
le 28/08/2007, FredA a écrit :
Merci Mike

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3