Wie finde ich heraus, ob ich eine Datei oder ein Verzeichnis über ein Filepanel oder Dropzone verarbeiten muss?

Meine diesbezügliche Lösung beinhaltet eine IF-Abfrage und eine Subroutine.

If-Abfrage:
 
Folder$=Quellvariable$
 
if(IfDirectory(Folder$))then
      is_an_directory=1
else
      is_an_directory=2
endif

print is_an_directory

Subroutine:

sub IfDirectory(filename$)
      return not system("test -d "+filename$)
end sub
 
Um herauszufinden, ob ich ein Verzeichnis oder eine Datei über ein Filepanel oder Dropzone zu verarbeiten habe, übergebe ich meinen Dateipfad an die Variable Folder$ und verwende den Test Befehl um zu prüfen, ob ich ein Verzeichnis in der Variablen übergeben habe.
 
Ist die Überprüfung positiv wird durch die If-Abfrage die Zahlenvariable is_an_directory auf 1 gesetzt. Ist es kein Verzeichnis, wird der Wert auf 2 gesetzt.
 
Beispiel: Egal was übergeben wird, es wird der Dateipfad ermitteln

If-Abfrage:

if(IfDirectory(Quellvariable$)) then
      is_an_directory=1
      Folder$= Quellvariable$
else
      is_an_directory=2
      dim SplitFolderPath$(1)
            splitting = split(Quellvariable$, SplitFolderPath$(), "/")
            for i = 2 to splitting-1
                  Folder$=Folder$+"/"+SplitFolderPath$(i)
            next i
            print "folder:"+Folder$
endif

Subroutine:
sub IfDirectory(filename$)
      return not system("test -d "+filename$)
end sub
 
In diesem Beispiel erweitern wir diese Überpürfung und ermitteln, egal was wir abfragen (Datei oder Verzeichnis),  wie der Dateipfad ist.
 
Ermittelt der test Befehl ein „nicht“ Verzeichnis, wird die Quellvariable über einen Array (SplitFolderPath$()) in seine Einzelteile zerschnitten. Um dies zu tun, wird bei jedem „/“ Zeichen eine neuer Eintrag im Array angelegt.
 
Danach werden alle Arrayeinträge wieder zusammengesetzt, mit Ausnahme des letzten Eintrages.
BuildLOG ist ein in yab geschriebenes Archiv-Programm, mit welchen man Informationen über den „build“ Prozess eines Programms oder Spiels archivieren kann.
 
Immer wieder habe ich versucht diverse Programme für Haiku zu kompilieren. Leider bin ich auf Grund von mangelnden Erfahrungen in Bezug auf das Kompilieren und Programmieren in C/C++ (und anderer Sprachen) gescheitert. Dies auch oft bei Programmen, die es in der Vergangenheit bereits für BeOS/Zeta/Haiku gegeben hat.
Leider haben die Leute, die diese Programme damals portiert haben, meist keine genauen Beschreibungen hinterlassen mit wessen Hilfe man heute, auch als nicht Entwickler, Erfolgserlebnisse feiern könnte.
 
Hier setzt das Archiv-Programm an, denn es ermöglicht genau diese Informationen zu Archivieren.
 

Wer von Euch also Lust hat mir bei diesen Projekt zu helfen, kann sich das Programm von der Download Seite der BeSly herunterladen oder über unseren Repository Server installieren, Informationen eintragen und dann die erstellten „LOG“-Dateien an mich senden (wir automatisch in eine Mail gepackt). Diese werden dann zu den BuildLOG Paket auf der BeSly hinzugefügt.