Seite 1 von 1

DirectoryEntryAttributes Problem

Verfasst: 01.11.2012 22:34
von Moxl
Hallo,

ich habe mal wieder ein Problem und finde einfach den Fehler nicht...
Das ist mein Code:

Code: Alles auswählen

InitNetwork()
verbindung=OpenNetworkConnection(host$, port)
If  verbindung<>0
  Repeat
    Delay(20)
    event=NetworkClientEvent(verbindung)
    
    Select event
        
      Case #PB_NetworkEvent_Data
        buffer.s=Space(2000)
        ReceiveNetworkData(verbindung, @buffer, 2000)
        crude$=RTrim(buffer.s)
        
        Select  StringField(crude$, 1, Chr(28))
            
          Case  "dirview"
            verzeichnis$=StringField(crude$, 2, Chr(28))
            dirs$="dirviewback"+Chr(29)
            If  ExamineDirectory(0, verzeichnis$, "")<>0
              While NextDirectoryEntry(0)
                If  DirectoryEntryAttributes(0)=#PB_FileSystem_Hidden
                  dateiversteckt$="ja"
                Else
                  dateiversteckt$="nein"
                EndIf
                If  DirectoryEntryAttributes(0)=#PB_FileSystem_ReadOnly
                  dateischreibgeschutzt$="ja"
                Else
                  dateischreibgeschutzt$="nein"
                EndIf
                dirs$+DirectoryEntryName(0)+Chr(10)+Str(DirectoryEntrySize(0))+Chr(10)+dateiversteckt$+Chr(10)+dateischreibgeschutzt$+Chr(28)
              Wend
              FinishDirectory(0)
              Debug dirs$
              SendNetworkString(verbindung, dirs$)
            Else
              SendNetworkString(verbindung, "dirviewfailed")
            EndIf
            
        EndSelect
        
    EndSelect
  ForEver
Else
  End
EndIf
und auf der Serverseite wird der dirs$ string empfangen und mit stringfield() aufgesplittet und direkt in ein ListIconGadget() eingefügt. Im ListViewGadget() gibt halt einmal Dateiname, Dateigröße, Ob Versteckt oder nicht und ob schreibgeschützt oder nicht.

soweit funktioniert alles nur das bei JEDER datei, bei versteckt und schreibgeschützt, immer nein angezeigt wird... obwohl das ja nicht sein kann (habs ja getestet) :praise:

Ich find den Fehler einfach net und hoffe ihr könnt mir weiter helfen... wenn ihr den ListViewGadget() Code braucht dann schneid ich ihn aus und poste ihn euch auch noch :mrgreen:

So dann schonmal danke im Vorraus! :D

Re: DirectoryEntryAttributes Problem

Verfasst: 01.11.2012 22:47
von NicTheQuick
'DirectoryEntryAttributes(0)' gibt dir eine Zahl zurück, die mehrere Attribute gleichzeitig darstellt, da sie auf Bit-Ebene ver'ODER't sind.
Um heraus zu finden, ob ein Verzeichnis versteckt ist, musst du also das Bit für versteckte Dateien mit boolschen Operatoren heraus filtern. Das geht dann ganz einfach so:

Code: Alles auswählen

If DirectoryEntryAttributes(0) & #PB_FileSystem_Hidden
  ;blablabla
EndIf

Re: DirectoryEntryAttributes Problem

Verfasst: 01.11.2012 23:03
von Moxl
ha ich glaubs nich, es funktioniert! :bounce:

etwas kompliziert aber es funktioniert :mrgreen:

danke dir vielmals :praise: