SETFILEDATE

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 11 avril 2007 à 11:15
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 - 18 juil. 2007 à 20:20
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/42171-setfiledate

MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
18 juil. 2007 à 20:20
Pour faire rapide les API sont des fonctions développées par microsoft pour nous faciliter la programmation à nous, programmeurs. La plupart concernent des fonctions pour agir sur windows et le système, ou alors pour faire des trucs graphiques etc... C'est très varié. Et ces fonctions sont contenues dans les DLL (par exemple kernel32.dll, ou user32.dll)
aryanamaria Messages postés 1 Date d'inscription mercredi 18 juillet 2007 Statut Membre Dernière intervention 18 juillet 2007
18 juil. 2007 à 15:32
c'est quoi les api
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
12 avril 2007 à 20:58
argh ! on va pas reprocher à quelqu'un qui utilise du .net de se servir des api ! C'est si rare ^^
Vive les api ^^
hugoclavet Messages postés 10 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 1 mars 2008
12 avril 2007 à 00:18
Merci beaucoup. Je préfère aussi utiliser les fonction du framework, mais là, je n'avais pas trouvé ça.
Je trouvais ça bizare d'être le premier a poster un code la dessus.
Si par hasard quelqu'un sait comment faire la même chose en asp, se serait bien apprécié.
Je développe un genre de client FTP. A chaque download ou upload, le fichier transféré change de date. Sur le serveur les secondes sont arrondi sans parler des conversions de fuseau horaire. Et le comble, si je download un fichier du server, la date du fichier du serveur change (bizare). Je dois donc trouver une façon de corriger les dates aprés chaque transfert. Coté local, pas de problème mais pour changer les dates du fichier coté serveur ???
OneHacker Messages postés 1447 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 23 septembre 2007 2
11 avril 2007 à 18:31
C'est vrai comme pour ouvrir les lecteurs CD :p Ou encore un fichier sont en VB.NET 2003.
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
11 avril 2007 à 17:19
non on oublie pas les api en vb.net, on preferera utiliser les fonctions equivalentes integrées au framework, certes, mais certaines api n'ont pas d'equivalent .NET
OneHacker Messages postés 1447 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 23 septembre 2007 2
11 avril 2007 à 12:06
C'est vrai. Et aussi oubli les apis en VB.NET les API c'est plutôt en VB6.
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
11 avril 2007 à 11:15
Bonjour,

Je vais être critique, mais en VB.NET il y a plus simple :
IO.File.Get/Set LastAccessTime
Pareil pour création et modification.

Sinon pour ta fonction :
Public Function FileSetDate(ByVal sFileName As String, ByVal dFileDate As Date, Optional ByRef bSetCreationTime As Boolean False, Optional ByRef bSetLastAccessedTime As Boolean False, Optional ByRef bSetLastModified As Boolean = False) As Boolean

Le prototype est beaucoup trop long :
Public Function FileSetDate(byval pFileName as string,byval pDate as date, byval pDates as EDates) as Boolean

Avec :
Enum EDates
Creation=1
LastAccess=2
LastModifi=4
end Enum


Exemple d'appel :
FileSetDate("c:\fichier.txt",#10/10/2007#,EDates.Creation or EDates.LastAccess)

Et pour tes tests :
# If bSetCreationTime Then
# FileSetDate = FileSetDate And CBool(SetFileTime(lhwndFile, tFileTime, Nothing, Nothing))
# End If
# If bSetLastAccessedTime Then
# FileSetDate = FileSetDate And CBool(SetFileTime(lhwndFile, Nothing, tFileTime, Nothing))
# End If
# If bSetLastModified Then
# FileSetDate = FileSetDate And CBool(SetFileTime(lhwndFile, Nothing, Nothing, tFileTime))
# End If

devient :
# If (pDates and EDates.Creation)>0 Then
# FileSetDate = FileSetDate And CBool(SetFileTime(lhwndFile, tFileTime, Nothing, Nothing))
# End If
# If (pDates and EDates.LastAccess)>0 Then
# FileSetDate = FileSetDate And CBool(SetFileTime(lhwndFile, Nothing, tFileTime, Nothing))
# End If
# If (pDates and EDates.LastModifi)>0 Then
# FileSetDate = FileSetDate And CBool(SetFileTime(lhwndFile, Nothing, Nothing, tFileTime))
# End If

C'est plus simple.
Rejoignez-nous