Code archives/Miscellaneous/Folder information (b+)
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| ; This sourcecode is a example of how you can automate processes. ; The code Reads the current directory and creates a custom textfile ; with information about all the files present. | |||||
;
; Update Contents.txt - By Nebula
;
; This sourcecode is a example of how you can automate processes.
; The code Reads the current directory and creates a custom textfile
; with information about all the files present.
;
;
;
;
;
;
Dim dir_array$(256)
Global path$ = SystemProperty("appdir")
If CommandLine$() = "-editor" Then path$ = "d:\blitzbasic\blitzplustutorials\"
Read_dir(path$)
sortarray()
ComposeFile()
Notify "Current directory processed. Read Contents.txt in folder for updates."
End
Function Read_Dir(directory$)
mydir = ReadDir(directory$)
Repeat
a$ = NextFile$(mydir)
If a$="" Then Exit
dir_array$(counter) = a$
counter = counter +1
If counter > 256 Then Notify "Directory (" + path$ + ") is to big to read." : Exit
Forever
CloseDir(mydir)
End Function
Function Countdirs()
Repeat
If dir_array$(counter) = "" Then Exit
If FileType(dir_array$(counter)) = 2 Then numdirs = numdirs + 1
counter = counter + 1
Forever
Return numdirs-2
End Function
Function Countfiles()
Repeat
If dir_array$(counter) = "" Then Exit
If FileType(dir_array$(counter)) = 1 Then numfiles = numfiles + 1
counter = counter + 1
Forever
Return numfiles
End Function
Function Printdirinfo$(filename$)
If FileType(filename$) = 2 Then a$ = "Folder"
If FileType(filename$) = 1 Then a$ = "File"
b$ = FileSize(filename$)
c$ = filename$
For i=Len(c$) To 32
c$ = c$ + " "
Next
c$ = c$ + b$
For i = Len(c$) To 48
c$ = c$ + " "
Next
c$ = c$ + a$
Return c$
End Function
Function Printstatistics$(ext$,extensionstring$)
For i=0 To 256
If getextension$(dir_array$(i)) = ext$ Then
File_size = File_Size + FileSize(dir_array$(i))
End If
Next
Return "Combined Size Of " + extensionstring$ + " (" + ext$ + ") files : " + file_size + " bytes."
End Function
Function PrintLineStatistics$(ext$,extensionstring$)
For i=0 To 256
If getextension$(dir_array$(i)) = ext$ And FileType(dir_array$(i)) = 1 Then
fu = OpenFile(dir_array$(i))
Repeat
ReadLine(fu)
nolines = nolines + 1
Until Eof(fu)
CloseFile(fu)
End If
Next
Return "Total amount of lines in " + extensionstring$ + " (" + ext$ + ") files : " + nolines + " Lines."
End Function
Function ComposeFile()
f = WriteFile(path$+"contents.txt")
;
WriteLine f,"Contents of the BlitzPlus Example/Tutorial Folder"
WriteLine f,""
WriteLine f,"Created By Nebula in 2003"
WriteLine f,""
WriteLine f,""
;
counter = 2
Repeat
If dir_array$(counter) = "" Then Exit
WriteLine f,printdirinfo$(dir_array$(counter))
counter = counter + 1
If counter > 256 Then Exit
Forever
WriteLine f,""
WriteLine f,Printstatistics("bb","Blitz Basic")
WriteLine f,Printlinestatistics("bb","Blitz Basic")
CloseFile(f)
End Function
Function Sortarray()
While Exitloop=False
Exitloop=True
For i=0 To 255
If dir_array$(i+1) <> "" Then
If dir_array$(i) > dir_array$(i+1) Then
a$ = dir_array$(i)
b$ = dir_array$(i+1)
dir_array$(i+1) = a$
dir_array$(i) = b$
Exitloop =False
End If
End If
Next
Wend
End Function
Function getfilename$(filename$) ; Returns the filename and extension
lastdir = 1
For i=1 To Len(filename$)
If Mid$(filename$,i,1) = "\" Then Lastdir = i
Next
If Lastdir > 1 Then Lastdir = Lastdir + 1
For i=Lastdir To Len(filename$)
a$ = a$ + Mid(filename$,i,1)
Next
Return a$
End Function
Function getextension$(filename$) ; Returns the extension minus the .
lastdir = 1
For i=1 To Len(filename$)
If Mid$(filename$,i,1) = "." Then Lastdir = i
Next
If Lastdir > 1 Then Lastdir = Lastdir + 1
For i=Lastdir To Len(filename$)
a$ = a$ + Mid(filename$,i,1)
Next
Return a$
End Function
Function getdirectory$(filename$) ; Returns the complete directory including drive
lastdir = 1
For i=1 To Len(filename$)
If Mid$(filename$,i,1) = "\" Then Lastdir = i
Next
For i=1 To Lastdir
a$ = a$ + Mid(filename$,i,1)
Next
Return a$
End Function
;End |
Comments
None.
Code Archives Forum