Bonjour,
Je ne trouve nulle part d'info à ce sujet...
Il semble que l'on ne puisse pas créer sous Windows 2000, XP et précédent de
fichier dont le chemin complet fasse plus de 256 car. C'est facile à tester
avec une ligne de commande :
mkdir 0123456789
cd 0123456789
..
Est-ce que quelqu'un aurait le pourquoi du comment ?
Le Tue, 16 Nov 2004 16:12:06 +0100, Pierre Goiffon écrivait:
Je ne trouve nulle part d'info à ce sujet...
Pourtant, chez Microsoft...
Il semble que l'on ne puisse pas créer sous Windows 2000, XP et précédent de fichier dont le chemin complet fasse plus de 256 car.
La limite est en fait 260 caractères: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/naming_a_file.asp
Est-ce que quelqu'un aurait le pourquoi du comment ?
Il faut bien une limite...
Patrick D.
On Tue, 16 Nov 2004 17:14:55 +0100, GG wrote:
Est-ce que quelqu'un aurait le pourquoi du comment ?
Dans WINNT.H la constante MAX_PATH est défini a 256 #define MAX_PATH 256
By design comme dirait MS.
c'est une fonctionnalité, donc ...
-- * enlevez '.don't.spam' et '.invalid' de mon adresse eMail si vous voulez m'écrire * * Donne un poisson à un homme, il aura à manger pour un jour * Apprends-lui à pêcher, il aura à manger pour tous les jours de sa vie *
On Tue, 16 Nov 2004 17:14:55 +0100, GG <news@nospam.assysm.com> wrote:
Est-ce que quelqu'un aurait le pourquoi du comment ?
Dans WINNT.H
la constante MAX_PATH est défini a 256
#define MAX_PATH 256
By design comme dirait MS.
c'est une fonctionnalité, donc ...
--
* enlevez '.don't.spam' et '.invalid' de mon adresse eMail si vous voulez
m'écrire *
* Donne un poisson à un homme, il aura à manger pour un jour
* Apprends-lui à pêcher, il aura à manger pour tous les jours de sa vie *
Est-ce que quelqu'un aurait le pourquoi du comment ?
Dans WINNT.H la constante MAX_PATH est défini a 256 #define MAX_PATH 256
By design comme dirait MS.
c'est une fonctionnalité, donc ...
-- * enlevez '.don't.spam' et '.invalid' de mon adresse eMail si vous voulez m'écrire * * Donne un poisson à un homme, il aura à manger pour un jour * Apprends-lui à pêcher, il aura à manger pour tous les jours de sa vie *
Patrick D.
On Tue, 16 Nov 2004 18:16:54 +0100, Pierre Goiffon wrote:
"GG" a écrit dans le message de news:
Est-ce que quelqu'un aurait le pourquoi du comment ?
Dans WINNT.H la constante MAX_PATH est défini a 256 #define MAX_PATH 256
By design comme dirait MS.
?? Winnt.h ????
à la compilation de windows
un fichier .h est une fichier de variables, de constantes et autres choses infâmes dans un programme en C ou C++ ou jenesaisquoidautre, incorporé dans le programme
donc, sauf à avoir la totalité du code-source de windows et le compilateur qui va bien ...
-- * enlevez '.don't.spam' et '.invalid' de mon adresse eMail si vous voulez m'écrire * * Donne un poisson à un homme, il aura à manger pour un jour * Apprends-lui à pêcher, il aura à manger pour tous les jours de sa vie *
On Tue, 16 Nov 2004 18:16:54 +0100, Pierre Goiffon
<pgoiffon@nowhere.invalid> wrote:
"GG" <news@nospam.assysm.com> a écrit dans le message de
news:cndcih.3bs.1@svr.assysm.com
Est-ce que quelqu'un aurait le pourquoi du comment ?
Dans WINNT.H
la constante MAX_PATH est défini a 256
#define MAX_PATH 256
By design comme dirait MS.
?? Winnt.h ????
à la compilation de windows
un fichier .h est une fichier de variables, de constantes et autres choses
infâmes dans un programme en C ou C++ ou jenesaisquoidautre, incorporé
dans le programme
donc, sauf à avoir la totalité du code-source de windows et le compilateur
qui va bien ...
--
* enlevez '.don't.spam' et '.invalid' de mon adresse eMail si vous voulez
m'écrire *
* Donne un poisson à un homme, il aura à manger pour un jour
* Apprends-lui à pêcher, il aura à manger pour tous les jours de sa vie *
On Tue, 16 Nov 2004 18:16:54 +0100, Pierre Goiffon wrote:
"GG" a écrit dans le message de news:
Est-ce que quelqu'un aurait le pourquoi du comment ?
Dans WINNT.H la constante MAX_PATH est défini a 256 #define MAX_PATH 256
By design comme dirait MS.
?? Winnt.h ????
à la compilation de windows
un fichier .h est une fichier de variables, de constantes et autres choses infâmes dans un programme en C ou C++ ou jenesaisquoidautre, incorporé dans le programme
donc, sauf à avoir la totalité du code-source de windows et le compilateur qui va bien ...
-- * enlevez '.don't.spam' et '.invalid' de mon adresse eMail si vous voulez m'écrire * * Donne un poisson à un homme, il aura à manger pour un jour * Apprends-lui à pêcher, il aura à manger pour tous les jours de sa vie *
Patrick 'Zener' Brunet
Bonsoir.
"Eric Rossé" a écrit dans le message de news:
Le Tue, 16 Nov 2004 16:12:06 +0100, Pierre Goiffon écrivait:
>Je ne trouve nulle part d'info à ce sujet...
Pourtant, chez Microsoft...
>Il semble que l'on ne puisse pas créer sous Windows 2000, XP et précédent
de
>fichier dont le chemin complet fasse plus de 256 car.
>Est-ce que quelqu'un aurait le pourquoi du comment ?
Il faut bien une limite...
L'article ci-dessus spécifie 256 + spécification d'unité + terminateur NUL, sous la forme : D:<<<<256 max>>>>NUL donc un buffer de 3+256+1&0 octets pour 256 caractères utiles de chemin pour une unité donnée.
En lisant le deuxième paragraphe de la section "Maximum Path Length" de l'article, j'imagine que pour les noms simples, il doit être alloué un buffer dont la taille utile est codée sur un octet, donc 256 maxi. Les noms UNC pourraient alors occuper plusieurs buffers de ce type, jusqu'à 256 buffers, mais avec la contrainte pour un segment de nom (répertoire ou nom local de fichier) de tenir dans un seul buffer.
C'est de l'optimisation plus ou moins discutable, mais un codage un mantisse illimitée nécessite toujours une analyse plus ou moins intelligente qui pénalise les performances.
Cordialement,
--
/************************************************************** * Patrick BRUNET @ ZenerTopia * E-mail: lien sur http://zener131.free.fr/ContactMe **************************************************************/ <8#--X--< filtré par Avast! 4 Home
Bonsoir.
"Eric Rossé" <eric.rosse@wanadoo.fr> a écrit dans le message de news:
05fkp09q2l2oc2cpfc20g7to9h5f93cm1v@4ax.com...
Le Tue, 16 Nov 2004 16:12:06 +0100, Pierre Goiffon écrivait:
>Je ne trouve nulle part d'info à ce sujet...
Pourtant, chez Microsoft...
>Il semble que l'on ne puisse pas créer sous Windows 2000, XP et précédent
de
>fichier dont le chemin complet fasse plus de 256 car.
>Est-ce que quelqu'un aurait le pourquoi du comment ?
Il faut bien une limite...
L'article ci-dessus spécifie 256 + spécification d'unité + terminateur NUL,
sous la forme :
D:<<<<256 max>>>>NUL
donc un buffer de 3+256+1&0 octets pour 256 caractères utiles de chemin
pour une unité donnée.
En lisant le deuxième paragraphe de la section "Maximum Path Length" de
l'article, j'imagine que pour les noms simples, il doit être alloué un
buffer dont la taille utile est codée sur un octet, donc 256 maxi.
Les noms UNC pourraient alors occuper plusieurs buffers de ce type, jusqu'à
256 buffers, mais avec la contrainte pour un segment de nom (répertoire ou
nom local de fichier) de tenir dans un seul buffer.
C'est de l'optimisation plus ou moins discutable, mais un codage un mantisse
illimitée nécessite toujours une analyse plus ou moins intelligente qui
pénalise les performances.
Cordialement,
--
/**************************************************************
* Patrick BRUNET @ ZenerTopia
* E-mail: lien sur http://zener131.free.fr/ContactMe
**************************************************************/
<8#--X--< filtré par Avast! 4 Home
>Est-ce que quelqu'un aurait le pourquoi du comment ?
Il faut bien une limite...
L'article ci-dessus spécifie 256 + spécification d'unité + terminateur NUL, sous la forme : D:<<<<256 max>>>>NUL donc un buffer de 3+256+1&0 octets pour 256 caractères utiles de chemin pour une unité donnée.
En lisant le deuxième paragraphe de la section "Maximum Path Length" de l'article, j'imagine que pour les noms simples, il doit être alloué un buffer dont la taille utile est codée sur un octet, donc 256 maxi. Les noms UNC pourraient alors occuper plusieurs buffers de ce type, jusqu'à 256 buffers, mais avec la contrainte pour un segment de nom (répertoire ou nom local de fichier) de tenir dans un seul buffer.
C'est de l'optimisation plus ou moins discutable, mais un codage un mantisse illimitée nécessite toujours une analyse plus ou moins intelligente qui pénalise les performances.
Cordialement,
--
/************************************************************** * Patrick BRUNET @ ZenerTopia * E-mail: lien sur http://zener131.free.fr/ContactMe **************************************************************/ <8#--X--< filtré par Avast! 4 Home
Pierre Goiffon
"Eric Rossé" a écrit dans le message de news:
Il semble que l'on ne puisse pas créer sous Windows 2000, XP et précédent de fichier dont le chemin complet fasse plus de 256 car.
"Patrick D." <patrickr.dubois.don' a écrit dans le message de news:
Dans WINNT.H la constante MAX_PATH est défini a 256 #define MAX_PATH 256
?? Winnt.h ????
à la compilation de windows
un fichier .h est une fichier de variables (...)
Je suis développeur et ai pratiqué C, je n'était pas étonné par le .h Mais plutôt me demandait d'où sortait ce winnt.h, et me le demande toujours ?
Dominique Vaufreydaz
Bonjour,
?? Winnt.h ????
à la compilation de windows
Je suis développeur et ai pratiqué C, je n'était pas étonné par le .h Mais plutôt me demandait d'où sortait ce winnt.h, et me le demande toujours ?
Du repertoire d'include de Visual Studio. Doit etre inclus par les afxmachin ou windows.h en fonction de WINVER (pas le temps de verifier exactement).
Voila. Doms. -- Impose ta chance, serre ton bonheur et va vers ton risque. A te regarder, ils s'habitueront. René Char, Les Matinaux. ---- http://Dominique.Vaufreydaz.free.fr/ http://TitchKaRa.free.fr/ http://logiciels.ntfaqfr.com/
Bonjour,
?? Winnt.h ????
à la compilation de windows
Je suis développeur et ai pratiqué C, je n'était pas étonné par le .h
Mais plutôt me demandait d'où sortait ce winnt.h, et me le demande
toujours ?
Du repertoire d'include de Visual Studio. Doit etre inclus par
les afxmachin ou windows.h en fonction de WINVER (pas le temps
de verifier exactement).
Voila. Doms.
--
Impose ta chance, serre ton bonheur et va vers ton risque.
A te regarder, ils s'habitueront.
René Char, Les Matinaux.
----
http://Dominique.Vaufreydaz.free.fr/
http://TitchKaRa.free.fr/
http://logiciels.ntfaqfr.com/
Je suis développeur et ai pratiqué C, je n'était pas étonné par le .h Mais plutôt me demandait d'où sortait ce winnt.h, et me le demande toujours ?
Du repertoire d'include de Visual Studio. Doit etre inclus par les afxmachin ou windows.h en fonction de WINVER (pas le temps de verifier exactement).
Voila. Doms. -- Impose ta chance, serre ton bonheur et va vers ton risque. A te regarder, ils s'habitueront. René Char, Les Matinaux. ---- http://Dominique.Vaufreydaz.free.fr/ http://TitchKaRa.free.fr/ http://logiciels.ntfaqfr.com/
Eric Rossé
Le Tue, 16 Nov 2004 23:08:56 +0100, Patrick 'Zener' Brunet écrivait:
L'article ci-dessus spécifie 256 + spécification d'unité + terminateur NUL, sous la forme : D:<<<<256 max>>>>NUL donc un buffer de 3+256+1&0 octets pour 256 caractères utiles de chemin pour une unité donnée.
Oui, j'aurai pu préciser; mais comme j'ai donné la référence chez Microsoft... Ne pas oublier également de compter les antislashs séparateurs de niveau. A noter que les versions récentes de sdk ont défini la constante MAX_PATH dans le fichier WinDef.h, et aussi quelques autres, mais plus dans winnt.h.
Le Tue, 16 Nov 2004 23:08:56 +0100, Patrick 'Zener' Brunet écrivait:
L'article ci-dessus spécifie 256 + spécification d'unité + terminateur NUL,
sous la forme :
D:<<<<256 max>>>>NUL
donc un buffer de 3+256+1&0 octets pour 256 caractères utiles de chemin
pour une unité donnée.
Oui, j'aurai pu préciser; mais comme j'ai donné la référence chez Microsoft...
Ne pas oublier également de compter les antislashs séparateurs de niveau.
A noter que les versions récentes de sdk ont défini la constante MAX_PATH
dans le fichier WinDef.h, et aussi quelques autres, mais plus dans winnt.h.
Le Tue, 16 Nov 2004 23:08:56 +0100, Patrick 'Zener' Brunet écrivait:
L'article ci-dessus spécifie 256 + spécification d'unité + terminateur NUL, sous la forme : D:<<<<256 max>>>>NUL donc un buffer de 3+256+1&0 octets pour 256 caractères utiles de chemin pour une unité donnée.
Oui, j'aurai pu préciser; mais comme j'ai donné la référence chez Microsoft... Ne pas oublier également de compter les antislashs séparateurs de niveau. A noter que les versions récentes de sdk ont défini la constante MAX_PATH dans le fichier WinDef.h, et aussi quelques autres, mais plus dans winnt.h.