DirectoryEntryName() et les répertoires

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

DirectoryEntryName() et les répertoires

Message par Heis Spiter »

Voila, ce serait bien que DirectoryEntryName() retourne le nom même si le "fichier" est un répertoire. En attendant, si quelqu'un a une solution de rechange, je suis prenneur.
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Sauf erreur, c'est bien ce qu'il fait déjà, il me semble!

C'est avec NextDirectoryEntry() que tu détermines si c'est un fichier ou un dossier, (retour 1 ou 2), mais DirectoryEntryName() te renvoie toujours un nom.

Non???
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

Non, en cas de répertoire, il renvoi un point :?
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

:!: Je viens de voir, cela dépend des répertoires !!! Voici le résultat d'un examen du dossier de Pure
2
.
---
2
..
---
2
PureLibraries
---
1
unins000.dat
---
1
unins000.exe
---
2
src
---
1
Visual Designer.exe
---
2
TailBite
---
2
PBSyntax
---
1
Beta - ReadMe.txt
---
1
Visual Designer.prefs
---
1
Tools.prefs
---
1
PureBasic.chm
---
2
Catalogs
---
2
Examples
---
2
Compilers
---
1
SmartUpdate.prefs
---
1
PureBasic.exe
---
1
Visual Designer.exe.manifest
---
2
Simple
---
1
SmartUpdate.exe
---
1
PureBasic.prefs
---
2
Languages
---
2
Update
---
1
UpdateTool.exe
---
1
UpdateTool.exe.manifest
---
2
Debugger
---
2
Library SDK
---
1
Visual Designer.chm
---
1
PBSyntax.exe
---
1
PureBasic.exe.manifest
---
1
SmartUpdate.exe.manifest
---
1
Visual Designer Constants.prefs
---
1
PBSyntax.exe.manifest
---
2
help
---
1
ClientMain.pb
---
1
ClientInclude.pb
---
2
RichEdit
---
1
ZipInclude.pb
---
1
PB Constants display.exe
---
1
Constants.out
---
1
GeneratedMainFile.pb
---
2
UserLibraries
---
1
GeneratedIncludeFile.pb
---
2
Residents
---
8O

Code : Tout sélectionner

If ExamineDirectory(2, "C:\Program files\PureBasic", "*.*")
  NDE = NextDirectoryEntry()
  While NDE <> 0
    Debug NDE
    DEN$ = DirectoryEntryName()
    Debug DEN$
    Debug "---"
    NDE = NextDirectoryEntry()
  Wend
EndIf
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

Bon, encore du nouveau. J'ai lancé un listing juste pour les répertoire avec un compteur, voici le résultat
2
.
---
2
..
---
2
PureLibraries
---
2
src
---
2
TailBite
---
2
PBSyntax
---
2
Catalogs
---
2
Examples
---
2
Compilers
---
2
Simple
---
2
Languages
---
2
Update
---
2
Debugger
---
2
Library SDK
---
2
help
---
2
RichEdit
---
2
UserLibraries
---
2
Residents
---
i = 18
Or, j'ai été voir mon dossier de Pure, et il contient 16 répertoires...
Bug de Pure ces points ?
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Non, c'est pas un bug, ça c'est sûr.
Je ne sais plus exactement à quoi ça correspond, mais c'est normal.

Ouvre Winrar, par exemple, et tu verras qu'il y a deux points quand tu est dans un sous répertoire.

Il suffit de ne pas les faire afficher, c'est tout.

Code : Tout sélectionner

If ExamineDirectory(0, "D:\PureBasic", "*.*")
  Repeat
    Type = NextDirectoryEntry()
    Name$ = DirectoryEntryName()
    
    If Name$ <> "." And Name$ <> ".."
      If Type = 1
        Name$ = "(FIC) -----> "+Name$
      ElseIf Type = 2
        Name$ = "(DIR) -----> "+Name$
      EndIf
      Debug Name$
    EndIf
    
  Until Type = 0 
EndIf
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Le . et le .. sont des restes de la gestion des répertoires sous dos.

passez en mode dos et faites un listing de la racine par exemple.
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

\. = racine du dossier
\.. = dossier parent

si mes souvenir sont bons :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

ben oui en dos on sort d'un dossier en tappant :

Code : Tout sélectionner

cd ..
Répondre