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: 500
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.

Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Beitrag von mini990 » Do, 09. Aug 2018 12:42

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: 126
Registriert: Mi, 05. Okt 2005 15:10
Wohnort: Wiesloch

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Beitrag von Schubi » Do, 09. Aug 2018 12:58

Hallo Stefan,

FExists(cDir, "D") oder Directory(cDir, "D")
Grüße Steffen

georg
Foren-Administrator
Foren-Administrator
Beiträge: 2223
Registriert: Fr, 08. Feb 2008 21:29

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Beitrag von georg » Do, 09. Aug 2018 12:59

Hallo, Stefan -


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

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

Georg S. Lorrig
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.

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

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Beitrag von mini990 » Do, 09. Aug 2018 13:36

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: 13110
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Beitrag von Jan » Do, 09. Aug 2018 13:45

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
Foren-Administrator
Foren-Administrator
Beiträge: 2223
Registriert: Fr, 08. Feb 2008 21:29

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Beitrag von georg » Do, 09. Aug 2018 14:08

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
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14587
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Beitrag von brandelh » Fr, 10. Aug 2018 8:26

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: 11458
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Abfrage ob irgendwas in einem Verzeichnis vorhanden ist.

Beitrag von AUGE_OHR » Fr, 10. Aug 2018 19:59

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