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

C# Discussion :

nom fichier dos


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut nom fichier dos
    Bonjour,

    A partir de C#, je cherche à obtenir le nom d'un fichier au format dos.
    Impossible de trouver une solution autre que de passer par les API en interop.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
            public static extern int GetShortPathName([MarshalAs(UnmanagedType.LPTStr)] string path, 
                [MarshalAs(UnmanagedType.LPTStr)] StringBuilder shortPath, int shortPathLength);
    Dois-je me résigner à penser que C# ne sait pas faire ça en natif ?

    Papy

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    en meme temps, connaitre le nom dos d'un fichier ca sert plus à grand chose de nos jours, microsoft a ptete pas juger utile de le porter sur .net


    et de toute facon, beaucoup de fonctions du framework font tout simplement appel à une api comme tu le fais ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    Pour l'utilité, je n'en doute pas !

    Mon problème est que j'utilise une dll qui, apparemment, pose problème si je lui transmets dans une fonction, un paramètre représentant un nom de fichier long comportant un caractère accentué. D'où mon besoin de transformer ça en nom court.

  4. #4
    Membre chevronné
    Inscrit en
    Décembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2008
    Messages : 256
    Par défaut
    Peut-être peux-tu renommer ton fichier qui pose problème, ou bien en effectuer une copie temporaire avec un nom que ta DLL est capable de gérer.

  5. #5
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    ça aurait pu être une solution mais pas dans ce cas. Ca me poserait des problèmes de droit de création de fichier sous Vista, en plus davoir non pas un mais plusieurs fichiers à traiter ainsi.

    Mais ça aurait pu être une solution.


    Je vais rester sur ma solution kernel ...

    Merci

  6. #6
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Citation Envoyé par Papy214 Voir le message
    ça aurait pu être une solution mais pas dans ce cas. Ca me poserait des problèmes de droit de création de fichier sous Vista, en plus davoir non pas un mais plusieurs fichiers à traiter ainsi
    Il n'y a aucun problème sur Vista si tu respectes les recommandations de Microsoft. En clair, tu peut créer/supprimer/modifier ce que tu veux dans le profile de l'utilisateur (Documents, dossier temp du profile, bureau, te créer un sous dossier dans LocalAppData, sous dossiers de C: ou sur un autre disque dur). Pour le reste (dossier Windows, fichiers de C:, fichiers des autres utilisateurs, fichiers et dossier de program files) il ne faut y accéder qu'en lecture seule et les modifier que pendant l'installation/désinstallation d'un programme par exemple.

    Si tu fait ça, jamais plus l'UAC ne t'embêtera et au final ton programme est plus propre car a une meilleur gestion des informations de l'utilisateur.

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

Discussions similaires

  1. Concatener la date au du nom fichier
    Par peppena dans le forum Linux
    Réponses: 5
    Dernier message: 09/02/2009, 12h53
  2. Conversion d'un fichier dos vers windows ?
    Par elitost dans le forum Windows
    Réponses: 4
    Dernier message: 10/02/2005, 17h42
  3. [langage] fichier DOS et unix, retour chariot Mac unix
    Par Kinethe dans le forum Langage
    Réponses: 5
    Dernier message: 25/10/2004, 14h05
  4. [langage] Etendre les noms de fichier DOS
    Par jmartin dans le forum Langage
    Réponses: 4
    Dernier message: 13/07/2004, 13h32

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