Verzeichnisse & Dateien: Mal lesbar, mal nicht...

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

pixelshooter

Betreff: Verzeichnisse & Dateien: Mal lesbar, mal nicht...

BeitragSa, Mai 12, 2007 18:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich wollte eig nur mal eben ein programm schreiben, weil ich die größte größe (einer datei; klingt iwie komisch... Very Happy) in einem Verzeichnis herausfindet. seltsamerweise habe ich in einigen verzeichnissen das problem, dass die datei (per NextFile ermittelt) nicht existiert. Name stimmt, aber filetype gleich 0. manchmal geht es, manchmal nicht. es hängt u.a. auch noch davon ab, ob das verzeichnis per parameter bezogen wird... Confused

Code: [AUSKLAPPEN]
Graphics 800, 600, 16, 2

Global maxSz

If CommandLine() = ""
   checkdir(".")
Else
   checkdir(CommandLine())
EndIf

Print "Maximal size: " + maxSz + " Byte = " + (maxSz / 1024) + "kB"
WaitKey()
End


Function checkdir(dirs$, depth = 0)
   dir = ReadDir(dirs)
   For i = 1 To depth
      d$ = d + " |   "
   Next
   Repeat
      file$ = NextFile(dir)
      If file <> ".." And file <> "."
         Print d + "reading " + file
         Print d + " * Type " + FileType(file)
         Print d + " * Size " + FileSize(file)
         If FileType(file) = 2
            checkdir(file, depth + 1)
         ElseIf FileSize(file) > maxSz
            maxSz = FileSize(file)
         EndIf
      EndIf
   Until file = ""
End Function
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc

Smily

BeitragSa, Mai 12, 2007 19:33
Antworten mit Zitat
Benutzer-Profile anzeigen
bei Filetype und Filesize behandelst du die Datein so, als wären sie im Aktuellen verzeichniss.

Gruß, Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

pixelshooter

BeitragSa, Mai 12, 2007 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
naja, für den start ist das aktuelle verzeichnis ja .
wenn dann ein unterverzeichnis entdeckt wird, verzweigt sich der ablauf, und ein neues verzeichnis (.\x) wird gelesen. Weil jeder aufruf von checkdir erzeugt seine eigene Dir variable

ich hoffe ich habe dich richtig verstanden?^^
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc

Smily

BeitragSa, Mai 12, 2007 21:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Auch wenn das eigentlich nicht meine Art ist, aber diesmal ist es einfacher:
Code: [AUSKLAPPEN]
Graphics 800, 600, 16, 2

Global maxSz

If CommandLine() = ""
   checkdir(".")
Else
   checkdir(CommandLine())
EndIf

Print "Maximal size: " + maxSz + " Byte = " + (maxSz / 1024) + "kB"
WaitKey()
End


Function checkdir(dirs$, depth = 0)
   dir = ReadDir(dirs)
   For i = 1 To depth
      d$ = d + " |   "
   Next
   Repeat
      file$ = NextFile(dir)
      If file <> ".." And file <> "."
         Print d + "reading " + dirs$ + "\" + file ;***
         Print d + " * Type " + FileType(dirs$ + "\" + file) ;***
         Print d + " * Size " + FileSize(dirs$ + "\" + file) ;***
         If FileType(file) = 2
            checkdir(dirs$ + "\" + file, depth + 1) ;***
         ElseIf FileSize(file) > maxSz
            maxSz = FileSize(file)
         EndIf
      EndIf
   Until file = ""
End Function


Ich möchte dich bitten, nicht einfach den Code ohne ihn dir anzusehen zu verwenden, sondern zu erkennen was du falsch gemacht hattest Wink
Korrigierte zeilen hab ich mit *** markiert.
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

pixelshooter

BeitragSa, Mai 12, 2007 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
arg natürlich. Ich bin blöderweise davon ausgegangen dass wenn ich per nextFile an einen namen gekommen bin, ich ihn auch so benutzen könnte.
logisch dass der dateien natürlich im ordner des programmes und PATH sucht Wink

danke!
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc

Silver_Knee

BeitragSo, Mai 13, 2007 10:39
Antworten mit Zitat
Benutzer-Profile anzeigen
ääääm er sucht net in PATH beweisCode: [AUSKLAPPEN]
Print FileType("c:\windows\system32\kernel32.dll")
Print FileType("kernel32.dll")

pixelshooter

BeitragSo, Mai 13, 2007 11:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Shocked hast recht Shocked
auch das hielt ich für selbstverständlich (wundert mich eig auch sogar...)
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group