CLASSE DE GESTION DES FICHIERS/DOSSIERS ==> INFOS (DATES, COPYRIGHT...), LISTING
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 2010
-
9 déc. 2006 à 00:57
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 2010
-
26 avril 2007 à 18:00
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
De plus, de nombreuses fonctions et d'autres classes (objets) sont présentes.)
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 6 févr. 2007 à 21:06
Nouvelle MAJ au gré de l'avancement de Hex Editor VB :
-affiche boite de dialogue Run (executer)
-affiche boite de dialogue Sauvegarder (renvoie le nom du fichier choisi et affecte automatiquement l'extension désirée sans doublons)
-affiche boite de dialogue Ouvrir (renvoie le path du fichier choisi)
-sauvegarde directe d'un fichier texte (ou binaire) à l'aide d'une string contenant les données à sauvegarder ==> il s'agit de spécifier un path, une booléenne d'overwrite et du texte à sauvegarder, c'est un gain de temps pour la sauvegarde des fichiers de texte par exemple (SaveStringInFile "c:\montext.txt",Text1.Text,True)
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 14 janv. 2007 à 17:18
Merci pour le commentaire (que je vois après coup, dsl) !
Sinon, je viens dire que j'ai fait une MAJ :
-correction de quelques bugs
ajout des fonctions qui manquaient, à savoir :
-supprimer un dossier
-envoyer à la corbeille fichier/dossier
-déplacer fichier/dossier
(le tout avec les boites de dialogue Windows, donc faites confiance à ma classe, elle ne risque pas de vous faire perdre un fichier !)
et ajout de deux autres fonctions :
-affiche boite de dialogue "Propriétés" pour un fichier/dossier/drive
-affiche boite de dialogue "Choix d'un répertoire"
Petit commentaite : FolderExists marche aussi pour les Drives. Donc la fonction DriveExists de FileSystemObject est remplacée par FolderExists dans ma source.
Voilà ! Bientôt çà remplacera complètement FSO ;)
Si vous avez des idées de fonctions à rajouter, dites le !
Merci, @+
SamsonTam
Messages postés3Date d'inscriptionsamedi 30 décembre 2006StatutMembreDernière intervention31 décembre 2006 31 déc. 2006 à 01:50
Salut,
ce projet est fantastique, il donne une foule d'exemples clairs et commentés sur la manipulation de fichiers.
Ce dernier m'apparraît plus comme un tutorial que comme un simple projet. (Lecture, renommage, recherche, listing de fichier et dossiers. En plus des classes et des apis.)
Personnelemment, je ne savais rien sur les dlls et j'ai compris le fonctionnement seulement en lisant le code source!
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 15 déc. 2006 à 21:50
Salut, et çà marche ?
Autrement, pour info, j'ai mis à jour.... j'avais pas vu que l'on ne devais pas passer
GENERIC_READ
GENERIC_WRITE
FILE_SHARE_READ
FILE_SHARE_WRITE
en même temps pour avoir un accès le plus complet possible au fichier/dossier.
Donc maintenant, c'est possible d'obtenir des infos sur les fichiers système également.
@+
cs_drissou
Messages postés160Date d'inscriptiondimanche 7 décembre 2003StatutMembreDernière intervention14 janvier 2009 14 déc. 2006 à 08:43
Merci VIOLENT_KEN
je teste tout cela
Drissou
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 13 déc. 2006 à 19:27
Salut, oui, cette API n'est pas compatible avec Win98 (Requires Windows 2000 or later; Win9x/ME: Not supported).
Mais il est possible de la remplacer par
Declare Function GetFileSize Lib "kernel32" Alias "GetFileSize" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
et dans ce cas, il faudra transformer la valeur renvoyée par la fonction (qui est la LowPart d'une LargeInteger) et la valeur lpFileSizeHigh (qui est la HighPart de la LargeInteger) en une seule valeur (type Currency par exemple).
Donc :
Tu peux utiliser cette fonction pour convertir les deux parties renvoyées par GetFileSize en une seule variable (de type Currency)
'-------------------------------------------------------
'rassemble de long pour former une currency
'-------------------------------------------------------
Public Function GetCurrency(ByVal lngLowPart As Long, ByVal lngHighPart As Long) As Currency
GetCurrency = 2 ^ 32 * lngHighPart + lngLowPart
End Function
et ainsi remplacer l'API non compatible avec Win98.
@+
cs_drissou
Messages postés160Date d'inscriptiondimanche 7 décembre 2003StatutMembreDernière intervention14 janvier 2009 13 déc. 2006 à 13:40
Précision : problème avec GetFileSizeEx..
cs_drissou
Messages postés160Date d'inscriptiondimanche 7 décembre 2003StatutMembreDernière intervention14 janvier 2009 13 déc. 2006 à 13:35
Bonjour,
j'ai des problèmes pour l'utilisation sous W98..
lorsque je sélectionne un répartoire : pas de problème, je vois ses caractéristiques.
mais cela 'plante' pour un fichier.
Sans doute une API spécidique XP ?
Drissou
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 10 déc. 2006 à 11:25
Ok pas de problème Violent_Ken
Poue la source de Pape0 sur les projets VB j'ai trouvé comment ouvrir son projet.Vas voir sur les commentaires de cette source
A+ et bonne prog
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 10 déc. 2006 à 11:12
Vala la MAJ est faite ^^
Explorer ==> Pour File System Object, c'est quelque chose de bien foutu et de très puissant, mais c'est malheureusement très loin d'être satisaisant au niveau de la vitesse d'exécution.
Donc si ton programme requiert de la vitesse, autant utiliser quelque chose comme ce qui est codé dans cette classe ^^
@+
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 10 déc. 2006 à 11:04
Salut, merci à vous deux pour vos commentaires ^_^
Galain ==> je vais regarder et mettre à jour, merci.
Pour le point 2° l'erreur se trouve dans le module de classe clsFileInfos dans la fonction ci-dessous :
Public Function GetFile(ByVal sFile As String) As clsFile
Me.GetShortName sFile, sBuf
.ShortName = sBuf ( ligne corrigée)
Me.GetShortPath sFile, sBuf
.ShortPath = sBuf ( ligne corrigée)
Bravo pour cette classe
Par contre j'ai relevé 2 erreurs
1° A la rubrique Répertoire tu mets le nom du fichier et non celui du répertoire
2° Tu as inversé nom court et dossier court
Rien de bien méchant mais tu fais de l'excellent travail
Allez 9/10 et bon courage
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 9 déc. 2006 à 11:10
Salut Violent_Ken,
Je vais bien regarder ta class ce soir, car moi j'utilise FileSystemObject, et vu ce que tu dis, il vaut mieux éviter...Donc je pense que ta source va m'être très utile..Cela est très sympas de ta part de faire partager tes connaissances, comme certains le font déjà et qui sont comme toi, des personnes qui savent de quoi elles parlent...Même si pour moi c'est pas toujours facile de comprendre, comme on dit "il vaut mieux un beau dessin qu'un long discourt"
Merci
A+
Exploreur
violent_ken
Messages postés1812Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention26 octobre 20102 9 déc. 2006 à 00:57
Bon bah, à vous de tester, normalement aucun bug en vue ^_-
SVP laissez un commentaire, çà fait toujours plaisir et çà conforte dans l'idée que l'on a bien fait de partager sa source...
26 avril 2007 à 18:00
De plus, de nombreuses fonctions et d'autres classes (objets) sont présentes.)
@+
6 févr. 2007 à 21:06
-affiche boite de dialogue Run (executer)
-affiche boite de dialogue Sauvegarder (renvoie le nom du fichier choisi et affecte automatiquement l'extension désirée sans doublons)
-affiche boite de dialogue Ouvrir (renvoie le path du fichier choisi)
-sauvegarde directe d'un fichier texte (ou binaire) à l'aide d'une string contenant les données à sauvegarder ==> il s'agit de spécifier un path, une booléenne d'overwrite et du texte à sauvegarder, c'est un gain de temps pour la sauvegarde des fichiers de texte par exemple (SaveStringInFile "c:\montext.txt",Text1.Text,True)
@+
14 janv. 2007 à 17:18
Sinon, je viens dire que j'ai fait une MAJ :
-correction de quelques bugs
ajout des fonctions qui manquaient, à savoir :
-supprimer un dossier
-envoyer à la corbeille fichier/dossier
-déplacer fichier/dossier
(le tout avec les boites de dialogue Windows, donc faites confiance à ma classe, elle ne risque pas de vous faire perdre un fichier !)
et ajout de deux autres fonctions :
-affiche boite de dialogue "Propriétés" pour un fichier/dossier/drive
-affiche boite de dialogue "Choix d'un répertoire"
Petit commentaite : FolderExists marche aussi pour les Drives. Donc la fonction DriveExists de FileSystemObject est remplacée par FolderExists dans ma source.
Voilà ! Bientôt çà remplacera complètement FSO ;)
Si vous avez des idées de fonctions à rajouter, dites le !
Merci, @+
31 déc. 2006 à 01:50
ce projet est fantastique, il donne une foule d'exemples clairs et commentés sur la manipulation de fichiers.
Ce dernier m'apparraît plus comme un tutorial que comme un simple projet. (Lecture, renommage, recherche, listing de fichier et dossiers. En plus des classes et des apis.)
Personnelemment, je ne savais rien sur les dlls et j'ai compris le fonctionnement seulement en lisant le code source!
15 déc. 2006 à 21:50
Autrement, pour info, j'ai mis à jour.... j'avais pas vu que l'on ne devais pas passer
GENERIC_READ
GENERIC_WRITE
FILE_SHARE_READ
FILE_SHARE_WRITE
en même temps pour avoir un accès le plus complet possible au fichier/dossier.
Donc maintenant, c'est possible d'obtenir des infos sur les fichiers système également.
@+
14 déc. 2006 à 08:43
je teste tout cela
Drissou
13 déc. 2006 à 19:27
Mais il est possible de la remplacer par
Declare Function GetFileSize Lib "kernel32" Alias "GetFileSize" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
et dans ce cas, il faudra transformer la valeur renvoyée par la fonction (qui est la LowPart d'une LargeInteger) et la valeur lpFileSizeHigh (qui est la HighPart de la LargeInteger) en une seule valeur (type Currency par exemple).
Donc :
Tu peux utiliser cette fonction pour convertir les deux parties renvoyées par GetFileSize en une seule variable (de type Currency)
'-------------------------------------------------------
'rassemble de long pour former une currency
'-------------------------------------------------------
Public Function GetCurrency(ByVal lngLowPart As Long, ByVal lngHighPart As Long) As Currency
GetCurrency = 2 ^ 32 * lngHighPart + lngLowPart
End Function
et ainsi remplacer l'API non compatible avec Win98.
@+
13 déc. 2006 à 13:40
13 déc. 2006 à 13:35
j'ai des problèmes pour l'utilisation sous W98..
lorsque je sélectionne un répartoire : pas de problème, je vois ses caractéristiques.
mais cela 'plante' pour un fichier.
Sans doute une API spécidique XP ?
Drissou
10 déc. 2006 à 11:25
Ok pour le conseil..
A+ au plaisir...
Exploreur
10 déc. 2006 à 11:15
10 déc. 2006 à 11:14
Poue la source de Pape0 sur les projets VB j'ai trouvé comment ouvrir son projet.Vas voir sur les commentaires de cette source
A+ et bonne prog
10 déc. 2006 à 11:12
Explorer ==> Pour File System Object, c'est quelque chose de bien foutu et de très puissant, mais c'est malheureusement très loin d'être satisaisant au niveau de la vitesse d'exécution.
Donc si ton programme requiert de la vitesse, autant utiliser quelque chose comme ce qui est codé dans cette classe ^^
@+
10 déc. 2006 à 11:04
Galain ==> je vais regarder et mettre à jour, merci.
@+
9 déc. 2006 à 14:21
9 déc. 2006 à 14:15
Public Function GetFile(ByVal sFile As String) As clsFile
Me.GetShortName sFile, sBuf
.ShortName = sBuf ( ligne corrigée)
Me.GetShortPath sFile, sBuf
.ShortPath = sBuf ( ligne corrigée)
9 déc. 2006 à 14:02
Par contre j'ai relevé 2 erreurs
1° A la rubrique Répertoire tu mets le nom du fichier et non celui du répertoire
2° Tu as inversé nom court et dossier court
Rien de bien méchant mais tu fais de l'excellent travail
Allez 9/10 et bon courage
9 déc. 2006 à 11:10
Je vais bien regarder ta class ce soir, car moi j'utilise FileSystemObject, et vu ce que tu dis, il vaut mieux éviter...Donc je pense que ta source va m'être très utile..Cela est très sympas de ta part de faire partager tes connaissances, comme certains le font déjà et qui sont comme toi, des personnes qui savent de quoi elles parlent...Même si pour moi c'est pas toujours facile de comprendre, comme on dit "il vaut mieux un beau dessin qu'un long discourt"
Merci
A+
Exploreur
9 déc. 2006 à 00:57
SVP laissez un commentaire, çà fait toujours plaisir et çà conforte dans l'idée que l'on a bien fait de partager sa source...
Merci, @+