LIRE/ECRIRE DES FICHIER TAR (USTAR)

Baddante Messages postés 33 Date d'inscription mercredi 1 mars 2006 Statut Membre Dernière intervention 24 février 2008 - 24 mars 2006 à 21:18
sirWest Messages postés 2 Date d'inscription vendredi 19 novembre 2010 Statut Membre Dernière intervention 29 novembre 2010 - 29 nov. 2010 à 11:56
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34888-lire-ecrire-des-fichier-tar-ustar

sirWest Messages postés 2 Date d'inscription vendredi 19 novembre 2010 Statut Membre Dernière intervention 29 novembre 2010
29 nov. 2010 à 11:56
In Function Load:
To properly read directory structured files:

Add check of directory entry with trailing "/": If (vData "" Or vData "/") Then GoTo 1

To properly read 0-size files, comment out the check:
vSize = CLng("&o" & vData)
'If (vSize = 0) Then GoTo 1
sirWest Messages postés 2 Date d'inscription vendredi 19 novembre 2010 Statut Membre Dernière intervention 29 novembre 2010
29 nov. 2010 à 11:56
In Function Load:
To properly read directory structured files:

Add check of directory entry with trailing "/": If (vData "" Or vData "/") Then GoTo 1

To properly read 0-size files, comment out the check:
vSize = CLng("&o" & vData)
'If (vSize = 0) Then GoTo 1
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
24 mars 2006 à 21:25
Baddante> merci pour ton aide. Je le modifirais dans une prochaine version

Bonne prog

@+
Baddante Messages postés 33 Date d'inscription mercredi 1 mars 2006 Statut Membre Dernière intervention 24 février 2008
24 mars 2006 à 21:18
salut,

Super !

j'ai remarqué un bug dans la démo (tardemo.vbp)sur le drag and drop fonction : ListView1_OLEDragDrop

Le plantage survient quand tu sélectionne un dossier ou une sélection qui en comprend un.

Ajout d'un code de vérification en amont de l'appel à "mTar.Files.Append" via FileSystemObject.

Libre à chacun d'enlever les "msgbox" de vérif.
J'ai ajouté un code d'exclusion si le fichier est de taille nul, facultatif.

Code de correction (prévention d'erreur serait plus exact)

Private Sub ListView1_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
Dim n As CTarItem
Dim v As Variant
Dim objFSO, objFolder

Set objFSO = CreateObject("Scripting.FileSystemObject")

For Each v In Data.Files
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(v) Then
Set objFolder = objFSO.GetFile(v)
MsgBox "File existe."
'Check size = 0
If objFolder.Size <> 0 Then
Set n = mTar.Files.Append(CStr(v))
AddItem n.FileName, n.Size, n.DateCrea, n
Else
MsgBox "Le fichier à une taille égale à 0, l'archive ne l'accepte pas."
End If
Else
MsgBox "N'accepte pas les dossiers ou les sélections qui en comprennent."
Exit Sub
End If
Next

Set objFSO = Nothing

End Sub
Rejoignez-nous