IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Problème de renomage de nom de fichier pour archivage avec condition IF [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Février 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 99
    Points : 68
    Points
    68
    Par défaut Problème de renomage de nom de fichier pour archivage avec condition IF
    Bonjour

    A la suite d'un traitement lambda sur un fichier Excel, je souhaites l'archiver dans un répertoire "Archivage" et lui changer de nom. Le renomage dépend de la version Excel .xls ou .xlsx
    exemple : fichier.xlsx -->fichier_date.xlsx et fichier.xls -->fichier_date.xls.

    voilà mon bout de code qui plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Public Sub Main()
            ' Add your code here
            Dim sSrcFile As String
            Dim sSrcFolder As String
            Dim sDesFile As String
            Dim sDesFolder As String
     
            sSrcFile = Dts.Variables("SrcFile").Value.ToString
            sSrcFolder = Dts.Variables("SrcFolder").Value.ToString
            sDesFolder = Dts.Variables("DesFolder").Value.ToString
     
           If (sSrcFile.Substring(0, sSrcFile.Length - 1)) = "x" Then
            sDesFile = sDesFolder & sSrcFile.Substring(0, sSrcFile.Length - 5) & "_" & Today.ToString("dd-MM-yyyy") & sSrcFile.Substring(sSrcFile.Length - 5, 5)
           Else
            'sDesFile = sDesFolder & sSrcFile.Substring(0, sSrcFile.Length - 4) & "_" & Today.ToString("dd-MM-yyyy") & sSrcFile.Substring(sSrcFile.Length - 4, 4)
           End If
    '....etc....
    End Sub
    Merci de votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    La classe Io.Path expose pas mal de méthodes statiques permettant de jouer avec les noms de fichier : Path.GetFileNameWithoutExtension, Path.ChangeExtension etc.

    http://msdn.microsoft.com/fr-fr/libr...(v=vs.90).aspx

    Ce sera plus simple ...

  3. #3
    Membre du Club
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Février 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 99
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par ebastien Voir le message
    Bonjour,

    La classe Io.Path expose pas mal de méthodes statiques permettant de jouer avec les noms de fichier : Path.GetFileNameWithoutExtension, Path.ChangeExtension etc.

    http://msdn.microsoft.com/fr-fr/libr...(v=vs.90).aspx

    Ce sera plus simple ...
    Merci de ton aide. Avec un peu de recherche et tests, j'ai réalisé le code que je voulais en le simplifiant.
    Pour ceux que ça peu aider voici le bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Public Sub Main()
            '
            ' Add your code here
            Dim sSrcFile As String 'Nom de fichier source
            Dim sSrcFolder As String 'Chemin source du fichier
            Dim sDesFile As String 'Nom de fichier d'archivage
            Dim sDesFolder As String 'Chemin d'archivage
            Dim Extension As String 'Extension du fichier
            Dim FileWExtention As String 'Nom du fihier sans extension
     
     
            sSrcFile = Dts.Variables("SrcFile").Value.ToString
            sSrcFolder = Dts.Variables("SrcFolder").Value.ToString
            sDesFolder = Dts.Variables("DesFolder").Value.ToString
            Extension = System.IO.Path.GetExtension(sSrcFile)
            FileWExtention = System.IO.Path.GetFileNameWithoutExtension(sSrcFile)
     
     
            sDesFile = sDesFolder & FileWExtention & "_" & Today.ToString("dd-MM-yyyy") & Extension
     
    ....etc....
    End Sub

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    N'hésite pas à utiliser aussi Io.Path.Combine qui permet de combiner des chaînes en un chemin d'accès. Cela évite d'avoir à se demander si la variable contenant le chemin comporte un séparateur de fin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sDesFile = Io.Path.Combine(sDesFolder,FileWExtention & "_" & Today.ToString("dd-MM-yyyy") & Extension)

  5. #5
    Membre du Club
    Homme Profil pro
    Responsable d'exploitation informatique
    Inscrit en
    Février 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable d'exploitation informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 99
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par ebastien Voir le message
    Bonjour,

    N'hésite pas à utiliser aussi Io.Path.Combine qui permet de combiner des chaînes en un chemin d'accès. Cela évite d'avoir à se demander si la variable contenant le chemin comporte un séparateur de fin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sDesFile = Io.Path.Combine(sDesFolder,FileWExtention & "_" & Today.ToString("dd-MM-yyyy") & Extension)
    Ok, Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/12/2007, 13h31
  2. lire nom de fichier pour sauvegarde ensuite sur presse papier
    Par chapeau_melon dans le forum VBScript
    Réponses: 3
    Dernier message: 21/03/2007, 20h35
  3. Problème de comparaison de noms de fichiers
    Par ProviewJava1 dans le forum C
    Réponses: 4
    Dernier message: 19/01/2007, 14h31
  4. Composition d'un nom de fichier pour recherche
    Par tchalkost dans le forum C
    Réponses: 6
    Dernier message: 29/11/2006, 20h54
  5. [D2005][CGI] Nom de fichier pour une image
    Par Argonaute dans le forum Web & réseau
    Réponses: 1
    Dernier message: 30/08/2005, 12h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo