|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
michaelblasin
Anmeldungsdatum: 09.11.2010 Beiträge: 38
|
Verfasst am: 27.08.2018, 19:35 Titel: Die Attribute einer Datei einlesen |
|
|
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 |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 27.08.2018, 20:44 Titel: |
|
|
Ja, ich mußte seinerzeit auch ein wenig herumprobieren.
"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 |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 28.08.2018, 01:22 Titel: |
|
|
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 |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 28.08.2018, 18:14 Titel: |
|
|
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 |
|
|
|
|
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.
|
|