• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

PHP5: is_dir und is_file

ray_ray

New member
hi,

nochmal ich :)
das problem mit den listen und maps (frage vorher ^^) habe ich mit arrays gelöst. nun liegt das hier an:

ich hab ein verzeichnis mit 5 ordnern und 5 dateien. is_dir() und is_file() können aber nicht erkennen was datei udn was ordner ist. genauer machen die garnichts. jede die ifs ergeben false, sodass nicht reingesprungen wird. readdir() funktioniert richtig und erkennt alle elemente. is_dir() erkennt lediglich die 2 "system-verzeichnisse" . und ..

der pfad enthält keine leerzeichen. D:\Projects\Web\php5
freigaben gibts da auch nicht drauf.

hat jemand von euch schonmal das problem gehabt?

ach, noch kurz zum hintergrund, warum ich das mache: ich bastel mir grade ne art framework/objektsammlung/programmierhilfe/dingens zusammen um bequem jederzeit objektorientiert dateioperationen (und später noch mehr) durchführen zu können.

nochmals tausend dank für eure hilfe und ideen.
mfg, sebastian
 
Du verwendest höchstwahrscheinlich is_dir und is_file falsch.
Ach ja: readdir liefert nicht den kompletten Pfad.
 
PHP:
public function open( $read = false ) {
			if( $this->_handle = @opendir( $this->_name )) {
				$this->_open = true;
				
				if( $read ) {
					$this->read();
				}
			}
			else {
				throw new FrameworkException( "Failed to open folder '".$this->_name."'" );
			}
		}
das is die funktion zum öffnen. klappt ja auch.

PHP:
public function read() {
			for( $i = 0; $el = readdir($this->_handle); $i++ ) {
				if( is_file( $el ) ) {
					$this->_contents[ $i ] = new File($el);
				}
				else {
					$this->_contents[ $i ] = new Folder($el);
				}
			}
		}
das is das auslesen. schreiben ins array is korrekt. hab ich überprüft.

was meinst du mit ich vrewende das falsch?
 
Zuletzt bearbeitet:
was heißt ich verwende es falsch?
Nunja in der Regel machen die was, und zwar genau das was sie sollen - wenn man sie auf real existierende Dateien und Verzeichnisse loslässt.

Das was Du nicht beachtest steckt in meinem zweiten Satz und der Source Code bestätigt meine Vermutung.
 
ich hab is_dir jetzt den pfad mitgegeben. sprich is_dir($pfad.$name); $pfad hat auch den slash am ende. trotzdem wirds noch nicht erkannt
 
vergiss alles was ich grade eben noch geschrieben hab. falsche pfad-variable ^^ vielen dank. klappt wie es soll. herrlich :)
 
Zurück
Oben