Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Die Attribute einer Datei einlesen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
michaelblasin



Anmeldungsdatum: 09.11.2010
Beiträge: 38

BeitragVerfasst am: 27.08.2018, 18:35    Titel: Die Attribute einer Datei einlesen Antworten mit Zitat

Hallo,

Ich möchte die Attribute einer Datei bekommen.

Das Beispiel 2 für DIR im FreeBasic Handbuch funktioniert nicht.

Hat jemand eine Lösung ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 27.08.2018, 19:44    Titel: Antworten mit Zitat

Ja, ich mußte seinerzeit auch ein wenig herumprobieren. lächeln

"attrib" in Beispiel 2 ist ein Filter, kein Rückgabewert. Der wird -falls angegeben- in die Variable im 3. Parameter geschrieben:
Code:
#Include "dir.bi"

Dim As String g
Dim As Integer attribute

g = Dir("C:\*", -1, attribute) '1. datei
Do While Len(g) 'wenn datei gefunden
   Print g; Tab(40); Bin(attribute,8)
   g = Dir("", -1, attribute) 'nächste datei
Loop

Sleep


Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 28.08.2018, 00:22    Titel: Antworten mit Zitat

Das einzige, was im Beispiel 2 nicht genau wie beschrieben funktioniert ist, dass DIR bei Angabe von fbHidden, fbSystem usw. auch normale Dateien auflistet. Versteckte Dateien sind jedoch nur in der Liste, wenn fbHidden angegeben wird, usw. Der Rückgabeparameter enthält (sofern angegeben) aber das korrekte Muster.

Also:
filter = 0: alle normalen Dateien auflisten (keine Ordner), die nicht versteckt oder schreibgeschützt sind. Ob archivierbar oder nicht, spielt offenbar keine Rolle.
filter = fbArchive: letztendlich dasselbe wie bei filter = 0.
filter = fbDirectory: auch Ordner einbeziehen.
filter = fbHidden: auch versteckte Dateien einbeziehen.
filter = fbReadOnly: auch schreibgeschützte Dateien einbeziehen. (Ordner selbst lassen sich unter Windows gar nicht schreibschützen?)
filter = fbSystem: vermutlich analog zu oben, habe ich aber nicht getestet.

Ich werde mal sehen, ob ich Zeit finde, es im Artikel anzupassen. Wenn du jedenfalls nur schreibgeschützte Dateien haben willst, musst du fbHidden setzen und anschließend bei der Rückgabe noch prüfen, ob dort ebenfalls fbHidden gesetzt ist.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 28.08.2018, 17:14    Titel: Antworten mit Zitat

Der eingebaute Filter von DIR liefert so seltsame Ergebnisse, daß ich empfehlen würde, diesen Wert auf -1 zu setzen (= alle Dateien / Verzeichnisse) und dann den Rückgabewert auszuwerten. Also z.B für alle versteckten Verzeichnisse:
Code:
#Include "dir.bi"

Dim As String g
Dim As Integer attribute

Print Tab(31); "filter = "; Bin(fbDirectory Or fbHidden, 8)
Print

g = Dir("C:\*", -1, attribute) '1. datei
Do While Len(g) 'wenn datei gefunden
   If (attribute And fbDirectory) AndAlso (attribute And fbHidden) Then
      Print g; Tab(40); Bin(attribute,8)
   EndIf
   g = Dir("", -1, attribute) 'nächste datei
Loop

Sleep

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz