NOM DE FICHIER UNIQUE (INCREMENTE)

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 - 12 sept. 2005 à 23:18
cs_titi2b Messages postés 24 Date d'inscription jeudi 21 novembre 2002 Statut Membre Dernière intervention 20 février 2010 - 30 mars 2010 à 17:52
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/33768-nom-de-fichier-unique-incremente

cs_titi2b Messages postés 24 Date d'inscription jeudi 21 novembre 2002 Statut Membre Dernière intervention 20 février 2010
30 mars 2010 à 17:52
Merci, je test, très pratique comme fonction.
A rajouter au code snippets.
Merci beaucoup a plus
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
30 mars 2010 à 07:50
J'ignore si cela existe...

une traduction donnerait :
Public Function GetUnique(ByRef vsFileName As String, Optional ByRef vsIndicators As String "()", Optional ByVal vnFirstIndex As Integer 1) As String
Dim i As Integer
'# Le nom de fichier est séparé en deux parts
'# 'C:\a(' et ').mp3'
Dim sBegin As String
Dim sEnd As String
If Not File.Exists(vsFileName) Then
'# Le fichier existe, on ne se pose pas de question
GetUnique = vsFileName
Else
'# On sépare les parties du nom de fichier
i = vsFileName.LastIndexOf(".")
If i <> 0 Then
sEnd = vsFileName.Substring(i)
sBegin = vsFileName.Substring(0, i)
Else
'# Pas d'extension, la première partie est le nom complet
sBegin = vsFileName
sEnd = String.Empty
End If
'# Si l'indicateur (forcément deux caractères) est fournis, on complète les deux parties du nom
If vsIndicators.Length = 2 Then
sBegin &= vsIndicators.Substring(0, 1)
sEnd = vsIndicators.Substring(1) & sEnd
End If

i = vnFirstIndex
Do
'# On reconstruit un nom de fichier
GetUnique = sBegin & i & sEnd
i = i + 1
'# On boucle tant que le fichier existe, après avoir incrémenté le compteur
Loop While File.Exists(GetUnique)
End If
End Function

sans oublier le

Imports System.IO
cs_titi2b Messages postés 24 Date d'inscription jeudi 21 novembre 2002 Statut Membre Dernière intervention 20 février 2010
30 mars 2010 à 06:13
Bonjours,exist'il une fonction telle que cella en vb.net.
J'ai essayer de la convertir mais cela ne fonctionne pas.
Merci
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
25 août 2007 à 12:18
très utile, j'embarque merci ;)
Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 1
13 sept. 2005 à 09:53
Salut !

OK merci pour l'info Renfield.

Cordialement,
Cacophrène
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 sept. 2005 à 08:42
Dir$ génère une erreur 52 si tu lui donne un chemin réseau inexistant

ex : dir$("\\toto\bb.txt")
Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 1
13 sept. 2005 à 07:52
Salut !

C'est une idée bien sympa ça ! La fonction est sympathique. J'ai une question toutefois : Dans quels cas y a-t-il un problème avec Dir$ ? Pour l'instant je n'ai été confronté qu'à des fichiers ou dossiers inexistants, ce qui, bien, entendu, renvoie Empty. Quand y a-t-il vraiment un souci (je veux dire : une erreur) ?

A bientôt et merci par avance,
Cacophrène
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
12 sept. 2005 à 23:18
Sa ressemble grandement à XP quand tu renommes une tripotés de fichiers
J'ai pas testé ton code mais il me semble pas mal à vu d'oeil je vais tester...
Bonne prog a+
Rejoignez-nous