Page 1 sur 1

DirectoryEntryName() et les répertoires

Publié : lun. 26/juil./2004 8:56
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.

Publié : lun. 26/juil./2004 9:08
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???

Publié : lun. 26/juil./2004 9:35
par Heis Spiter
Non, en cas de répertoire, il renvoi un point :?

Publié : lun. 26/juil./2004 9:46
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

Publié : lun. 26/juil./2004 9:51
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 ?

Publié : lun. 26/juil./2004 10:02
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

Publié : lun. 26/juil./2004 12:59
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.

Publié : lun. 26/juil./2004 20:12
par cederavic
\. = racine du dossier
\.. = dossier parent

si mes souvenir sont bons :)

Publié : lun. 26/juil./2004 20:29
par Backup
ben oui en dos on sort d'un dossier en tappant :

Code : Tout sélectionner

cd ..