[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/privacyprotection/cron/task/anonymize_ip.php on line 83: A non-numeric value encountered
Inoffizielles deutsches Xbase-Forum • Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.
Seite 1 von 1

Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Verfasst: Do, 09. Aug 2018 12:42
von mini990
Hallo,
wie kann ich abfragen ob in einem Verzeichnis ein beliebiges Unterverzeichnis vorhanden ist?
Es sind keine Dateien im Verzeichnis, sondern nur (ggf.9 ein oder mehrere Untervrzeichnisse.

Gruß Stefan

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Verfasst: Do, 09. Aug 2018 12:58
von Schubi
Hallo Stefan,

FExists(cDir, "D") oder Directory(cDir, "D")

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Verfasst: Do, 09. Aug 2018 12:59
von georg
Hallo, Stefan -


aDir := Directory(cWo + "\*.*", "DHS")

Das sollte helfen.

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Verfasst: Do, 09. Aug 2018 13:36
von mini990
Directory gibt auch bei leerem Verzeichnis den Wert 1 zurück
Fexists gibt immer ein .T. zurück

das hatte ich schon probiert.....

Gruß Stefan

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Verfasst: Do, 09. Aug 2018 13:45
von Jan
Stefan,

wie Schubi schrieb: Mach ein aDirectory := Directory(Verzeichnisname, "D") drauf, und dann ein nPosition := AScan(aDirectory, Verzeichnisname) da drauf. Ist nPosition >= 1, gibt es das Verzeichnis. Sonst nicht.

Jan

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Verfasst: Do, 09. Aug 2018 14:08
von georg
Hallo,


also ...

Code: Alles auswählen

#INCLUDE "AppEvent.CH"
#INCLUDE "Directry.CH"
#INCLUDE "Xbp.CH"

FUNCTION Main()
	Local aDir
	Local nI, nLen

	aDir := Directory("*.*", "DHS")
	nLen := Len(aDir)
	FOR nI := 1 TO nLen
		IF aDir[nI, F_ATTR] == "D"
			? aDir[nI, F_NAME]
		ENDIF
	NEXT

	WAIT
RETURN (.T.)
Es gibt - auch unter Windows - immer noch die beiden Pseudo-Verzeichnisse "." und "..", wie mein kleines Beispiel zeigt. Wenn man diese herausfiltert, d.h. wenn nLen > 2 ist, dann gibt es noch beliebige Verzeichnisse.

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Verfasst: Fr, 10. Aug 2018 8:26
von brandelh
mini990 hat geschrieben: Do, 09. Aug 2018 13:36 Fexists gibt immer ein .T. zurück
das hatte ich schon probiert.....
was genau ist "irgendwas" ?

Code: Alles auswählen

FExists(cDir, "D")
oder meine Funktion
*---------------------------------------------------------------------------
function IsDir(cDirName) // keine Wildcards erwünscht
cDirName := strTran(cDirName,"?",chr(255))
cDirName := strTran(cDirName,"*",chr(255)+chr(255))
return File(cDirName, "D")
prüfen ob ein Verzeichnis existiert, nicht ob darin etwas ist ....

Wenn du wissen willst, ob Dateien im Verzeichnis sind, musst du
Directory( [<cDirectory>], [<cAttribute>] ) --> aDirectory
verwenden und - am Besten in einer Funktion - das Array nach erwünschtem bzw. unerwünschtem durchsuchen.
Es könnte z.B. sein, dass nur ein Verzeichnis darin existiert, wenn man nach Verzeichnissen fragt findet man immer "." (das aktuelle) und ".." (das darüber liegende),
daher muss man sich selbst eine Funktion schreiben, die bewertet, was man als "irgendetwas" meint.

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Verfasst: Fr, 10. Aug 2018 19:59
von AUGE_OHR
hi,

"das" ein Verzeichnis existiert reicht mir nicht ... ich teste ob ich schreiben kann

Code: Alles auswählen

IF TestDir(cDir) > 0
ELSE
ENDIF

FUNCTION TestDir(cDir)
LOCAL nBytes := 0
LOCAL nHandle := FCreate( cDir+"TEST.$$$", FC_NORMAL ) 
   IF nHandle == -1 
   ELSE
      nBytes := FWrite( nHandle, "Test" ) 
      FClose( nHandle ) 
   ENDIF 
RETURN nBytes