Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Beitrag 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
Benutzeravatar
Schubi
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 139
Registriert: Mi, 05. Okt 2005 15:10
Wohnort: Wiesloch
Hat sich bedankt: 5 Mal

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Beitrag von Schubi »

Hallo Stefan,

FExists(cDir, "D") oder Directory(cDir, "D")
Grüße Steffen
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Beitrag von georg »

Hallo, Stefan -


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

Das sollte helfen.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Beitrag 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
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Beitrag 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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Beitrag 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.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Beitrag 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.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Beitrag 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
gruss by OHR
Jimmy
Antworten