ExamineDirectory erkennt "." und ".."

Für allgemeine Fragen zur Programmierung mit PureBasic.
D4uS1
Beiträge: 268
Registriert: 02.09.2006 12:16

ExamineDirectory erkennt "." und ".."

Beitrag von D4uS1 »

In dem folgenden Beispielcode werden mir, bevor die Namen der wirklich existierenden Unterverzeichnisse auftauchen, immer erst ein Unterverzeichniss mit dem Namen "." und eins mit dem Namen ".." debuggt. Weshalb ist das so?

Code: Alles auswählen

ExamineDirectory(0, "C:\Beispiel\", "")

While NextDirectoryEntry(0)
 Debug DirectoryEntryName(0)
Wend
Solltet ihr Rechtschreibfehler finden, dürft ihr diese natürlich gerne behalten ;).
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: ExamineDirectory erkennt "." und ".."

Beitrag von Kaeru Gaman »

weil traditionell die ersten beiden Einträge in der FAT die Zeiger zur Current und zur Parent sind.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
D4uS1
Beiträge: 268
Registriert: 02.09.2006 12:16

Re: ExamineDirectory erkennt "." und ".."

Beitrag von D4uS1 »

Das bedeuted, dass ich das also nur ändern kann wenn ich if-Bedingen so einfüge, dass die entsrpechenden Namen "." und ".. " nicht debuggt werden sollen.
Solltet ihr Rechtschreibfehler finden, dürft ihr diese natürlich gerne behalten ;).
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: ExamineDirectory erkennt "." und ".."

Beitrag von rolaf »

D4uS1 hat geschrieben:Das bedeuted, dass ich das also nur ändern kann wenn ich if-Bedingen so einfüge, dass die entsrpechenden Namen "." und ".. " nicht debuggt werden sollen.
Oder so: :mrgreen:

Code: Alles auswählen

ExamineDirectory(0, "C:\Programme\", "")
NextDirectoryEntry(0)
NextDirectoryEntry(0)
While NextDirectoryEntry(0)
  Debug DirectoryEntryName(0)
Wend
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: ExamineDirectory erkennt "." und ".."

Beitrag von ts-soft »

Keine gute Idee:

Code: Alles auswählen

If ExamineDirectory(0, "C:\", "")
  NextDirectoryEntry(0)
  NextDirectoryEntry(0)
  While NextDirectoryEntry(0)
    Debug DirectoryEntryName(0)
  Wend 
EndIf
Mir fehlt jetzt nämlich was :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: ExamineDirectory erkennt "." und ".."

Beitrag von rolaf »

ts-soft hat geschrieben:Mir fehlt jetzt nämlich was :wink:
Ick habs jeahnt das du dich meldest. :mrgreen:

Code: Alles auswählen

ExamineDirectory(0, "C:\Programme\", "")
While NextDirectoryEntry(0)
  If DirectoryEntryName(0) <> "."
    If DirectoryEntryName(0) <> ".."
      Debug DirectoryEntryName(0)
    EndIf
  EndIf
Wend
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: ExamineDirectory erkennt "." und ".."

Beitrag von ts-soft »

DrFalo hat geschrieben: Ick habs jeahnt das du dich meldest. :mrgreen:
Was soll ich machen, wenn Du sowas postest. Deine beiden Codes erzeugen
übrigens ein IMA unter Vista oder 7, weil der Ordner Programme nicht existiert,
bzw. es nur ein Link ist. Deshalb immer überprüfen ob ExamineDirectory erfolgreich war.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: ExamineDirectory erkennt "." und ".."

Beitrag von rolaf »

Ach so aber scheinbar war C:\Beispiel\ vorhanden, oder meckerste nur bei mir?
Das man das überprüft war hier nicht die Frage und dürfte klar sein. Ansonsten kannst du gleich ganze Projekte hier posten, weil in Codestückchen meistens irgend was fehlt. :mrgreen:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: ExamineDirectory erkennt "." und ".."

Beitrag von ts-soft »

Verzeichnisse sollte immer überprüft werden, weil ExamineDirectory nur mit realen Verzeichnissen
funktioniert. Entsprechenden Code von freak gibt es hier:
http://www.purebasic.fr/english/viewtop ... 33#p282633

Das sollte man neben dem If beherzigen, wenn man auch aktuelle Betriebssysteme unterstützen möchte.
Mir gefällt das zwar auch nicht, das hätte MS IMHO auch besser lösen können.

Also wenn man es korrekt mache möchte, ist es mit ein paar Zeilen nicht erledigt! :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
CSHW89
Beiträge: 489
Registriert: 14.12.2008 12:22

Re: ExamineDirectory erkennt "." und ".."

Beitrag von CSHW89 »

ts-soft hat geschrieben:
DrFalo hat geschrieben: Ick habs jeahnt das du dich meldest. :mrgreen:
Was soll ich machen, wenn Du sowas postest. Deine beiden Codes erzeugen
übrigens ein IMA unter Vista oder 7, weil der Ordner Programme nicht existiert,
bzw. es nur ein Link ist. Deshalb immer überprüfen ob ExamineDirectory erfolgreich war.

Gruß
Thomas
das hat aber nichts mit vista oder 7 zutun. der code erzeugt ein IMA, wenn schlicht und ergreifend 'C:\Programme\' nicht existiert. das kann mehrere gründe haben. englischer pc, oder das laufwerk auf dem das betriebsystem drauf ist, ist nicht c:.

lg kevin
Bild Bild Bild
http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Antworten