OVH Cloud OVH Cloud

Fichier ??

7 réponses
Avatar
Louis
Bonjour,
Quand je me sert de Win doctor de Norton , il controle des programme ms-dos
C:/Docume~1\alluse~1Applic~1
ou C:\docume~1\pierre~1
je voudrais savoir a quoi cela correspond ? merci de vos réponses ....

7 réponses

Avatar
John of Aix
Louis wrote:
Bonjour,
Quand je me sert de Win doctor de Norton , il controle des programme
ms-dos C:/Docume~1alluse~1Applic~1
ou C:docume~1pierre~1
je voudrais savoir a quoi cela correspond ? merci de vos réponses ....


Ce sont des noms courts des noms longs ;-) c:documents and
settingsallusersapplication data et c:documents and
settingspierretonnom

Avatar
Norbert

Bonjour,
Quand je me sert de Win doctor de Norton , il controle des programme
ms-dos C:/Docume~1alluse~1Applic~1
ou C:docume~1pierre~1
je voudrais savoir a quoi cela correspond ? merci de vos réponses
....


C'est le nom court (8 caractères) du fichier qui apparait.
Par exemple C:/Docume~1alluse~1Applic~1 peut correspondre à
C:Documents and SettingsallusersApplication Data.

--
à bientot (enlever les X pour me répondre)
==================================== les secrets de l'univers http://nrumiano.free.fr
un atlas de l'univers http://atunivers.free.fr
images du ciel http://images.ciel.free.fr
=====================================

Avatar
Jean-Claude BELLAMY
Dans le message news:3Fv3e.40233$ ,
Louis s'est ainsi exprimé:

Bonjour,
Quand je me sert de Win doctor de Norton , il controle des programme
ms-dos C:/Docume~1alluse~1Applic~1
ou C:docume~1pierre~1
je voudrais savoir a quoi cela correspond ? merci de vos réponses ....


Au nom "court", appelé également "8.3" du fichier (manipulé généralement
sous son nom long de 255 caractères au mximum)

Jusqu'à DOS et Windows 3.11 (16 bits), les fichiers et répertoires étaient
"nommés" suivant une syntaxe dite 8.3, c'est à dire :
8 caractères pour le nom du fichier au maximum
le caractère "." (point) servant de séparateur
3 caractères pour l'extension du fichier au maximum


Les noms longs apparus avec Windows NT 3.1 (en 1993) puis Windows 95 (en
1995) ont rendus caducs ces restrictions

Pour convertir un nom long en nom court, Windows procède ainsi :

On traite chaque tronçon niveau répertoire ou fichier séparément.
- on supprime tous les espaces contenus dans le nom
- on supprime tous les ".", autres que le dernier, contenus dans le nom
- on remplace les caractères diacritiques (accents, cédille,..) par les
caractères associés ("é" -> "e", "ç" -> "c", ...)
- on conserve les 6 1ers caractères, on ajoute le caractère "~" (tilde)
et on ajoute un chiffre (voir ci-dessous)
- on ajoute le point, puis l'extension, tronquée de la même façon que le nom
aux 3 1ers caractères
- le chiffre (en position 8) est 1 par défaut, en s'assurant qu'un autre
fichier
n'existe pas déjà sous ce nom. Si un autre fichier existe, on passe à 2,
et
ainsi de suite (en hexadécimal).
MAIS s'il y a plus de 4 fichiers, ça change complètement ...
(voir plus bas)


J'ai écrit "NOMCOURT.VBS", un script VBS qui donne le nom court (8.3) à
partir du nom long d'un fichier (qu'il existe ou non)
http://www.bellamyjc.org/fr/vbsdownload.html#nomcourt

Exemple :
I:>nomcourt "May the Force be with You!"
C:MAYTHE~1

I:>nomcourt "d:La Connaissance s'accroît quand on la partage"
D:LACONN~1
(désolé ! ;+)))

NB: la commande
dir /X "nom de fichier très long avec des espaces"

donne également ce nom court, par contre elle ne fonctionne QUE SI le
fichier existe !

Mon script, lui, permet de PRÉVOIR le nom court de n'importe quel nom de
fichier.


Il m'a permis ainsi de voir comment ce mécanisme de noms courts fonctionnait
dans des "situations extrèmes"


S'il y a plus de 4 fichiers dont le nom long commencent par la même chaine,
seuls au maximum les 2 premiers caractères seront conservés!
Dans ce cas, les 2 derniers caractères sont "~1", et les caractères 3 à 6
vont être sous la forme de nombres hexadécimaux.

Exemple (réel, que j'avais fait il y a un an ..) :

Création rapide de 10 fichiers :
T:test>for %F in (0 1 2 3 4 4 5 6 7 8 9) do echo %F > "ceci est mon
fichier%F.doc"

T:testdir /x :

01/04/2004 13:50 4 CECIES~1.DOC ceci est mon fichier0.doc
01/04/2004 13:50 4 CECIES~2.DOC ceci est mon fichier1.doc
01/04/2004 13:50 4 CECIES~3.DOC ceci est mon fichier2.doc
01/04/2004 13:50 4 CECIES~4.DOC ceci est mon fichier3.doc
01/04/2004 13:50 4 CE825C~1.DOC ceci est mon fichier4.doc
01/04/2004 13:50 4 CE865C~1.DOC ceci est mon fichier5.doc
01/04/2004 13:50 4 CE8A5C~1.DOC ceci est mon fichier6.doc
01/04/2004 13:50 4 CE8E5C~1.DOC ceci est mon fichier7.doc
01/04/2004 13:50 4 CE826C~1.DOC ceci est mon fichier8.doc
01/04/2004 13:50 4 CE866C~1.DOC ceci est mon fichier9.doc

vérifié avec mon script :
T:test>for %F in (0 1 2 3 4 4 5 6 7 8 9) do nomcourt "ceci est mon
fichier%F.doc"

T:test>nomcourt "ceci est mon fichier0.doc"
T:testCECIES~1.DOC

T:test>nomcourt "ceci est mon fichier1.doc"
T:testCECIES~2.DOC

T:test>nomcourt "ceci est mon fichier2.doc"
T:testCECIES~3.DOC

T:test>nomcourt "ceci est mon fichier3.doc"
T:testCECIES~4.DOC

T:test>nomcourt "ceci est mon fichier4.doc"
T:testCE825C~1.DOC

T:test>nomcourt "ceci est mon fichier4.doc"
T:testCE825C~1.DOC

T:test>nomcourt "ceci est mon fichier5.doc"
T:testCE865C~1.DOC

T:test>nomcourt "ceci est mon fichier6.doc"
T:testCE8A5C~1.DOC

T:test>nomcourt "ceci est mon fichier7.doc"
T:testCE8E5C~1.DOC

T:test>nomcourt "ceci est mon fichier8.doc"
T:testCE826C~1.DOC

T:test>nomcourt "ceci est mon fichier9.doc"
T:testCE866C~1.DOC

Et j'ai fait des tests un peu folklos, en créant plus de 65536 fichiers (qui
correspond au nombre maxi représenté par 4 chiffres hexadécimaux)
Et là on s'aperçoit que le tilde se déplace ! Ce n'est plus l'avant dernier
caractère !

p.ex. :
01/04/2004 14:17 8 CE6~6851.DOC ceci est mon
fichier65765.doc
01/04/2004 14:17 8 CE6~6852.DOC ceci est mon
fichier65766.doc
01/04/2004 14:17 8 CE6~6853.DOC ceci est mon
fichier65767.doc
01/04/2004 14:17 8 CE6~6854.DOC ceci est mon
fichier65768.doc
01/04/2004 14:17 8 CE686~64.DOC ceci est mon
fichier65769.doc

Étonnant, non ? ;+)

Un lien utile sur les règles de nommage :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/naming_a_file.asp


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*

Avatar
Pierre Maurette
[...]
I:>nomcourt "d:La Connaissance s'accroît quand on la partage"
D:LACONN~1
(désolé ! ;+)))
Et si vous prononcez le 1 "à la turfiste", As ...

--
Pierre

Avatar
John of Aix
Jean-Claude BELLAMY wrote:

Et j'ai fait des tests un peu folklos, en créant plus de 65536
fichiers (qui correspond au nombre maxi représenté par 4 chiffres
hexadécimaux)


Il est fou ce mec ;-)

Avatar
Jean-Claude BELLAMY
Dans le message news:424ef765$2$11679$ ,
John of Aix s'est ainsi exprimé:

Jean-Claude BELLAMY wrote:

Et j'ai fait des tests un peu folklos, en créant plus de 65536
fichiers (qui correspond au nombre maxi représenté par 4 chiffres
hexadécimaux)


Il est fou ce mec ;-)


Effectivement, il faut être un peu fêlé si on veut connaitre EXACTEMENT
certaines règles.
Parce que ce genre d'infos, pourtant élémentaires, tu ne les trouve pas dans
le MSDN !

A la rigueur on doit pouvoir trouver çà dans le code source de Windows
(fonction GetShortPathName), mais là, j'ai vraiment la flemme de chercher le
code de la kernel32.dll ! ;-)


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*


Avatar
John of Aix
Jean-Claude BELLAMY wrote:
Dans le message news:424ef765$2$11679$ ,
John of Aix s'est ainsi exprimé:

Jean-Claude BELLAMY wrote:

Et j'ai fait des tests un peu folklos, en créant plus de 65536
fichiers (qui correspond au nombre maxi représenté par 4 chiffres
hexadécimaux)


Il est fou ce mec ;-)


Effectivement, il faut être un peu fêlé si on veut connaitre
EXACTEMENT certaines règles.
Parce que ce genre d'infos, pourtant élémentaires, tu ne les trouve
pas dans le MSDN !

A la rigueur on doit pouvoir trouver çà dans le code source de Windows
(fonction GetShortPathName), mais là, j'ai vraiment la flemme de
chercher le code de la kernel32.dll ! ;-)


Feignant va! Et moi qui comptais sur toi là-dessus.