2009-07-24 8 views

Antwort

5

Sie wollen pathconf or fpathconf, die nicht ausgesetzt ist (noch) nicht in PHP. (Wenn sie sind, werden sie wahrscheinlich posix_pathconf sein.)

Sie können Shell getconf, eine Befehlszeilen-Dienstprogramm-Schnittstelle zu derselben Funktionalität auch Shell. Versuchen Sie dies auf Ihrem System:

$ getconf NAME_MAX /tmp

$ getconf PATH_MAX /tmp

3

Die maximale Dateilänge für am meisten Linux-Dateisysteme ist 255. Sie verwenden wahrscheinlich am besten als allgemeine Konstante und ändern, um Ihr bekanntes Dateisystem in Linux anzupassen. Hier ist eine nette comparison of the file systems, die verwendet werden könnte. Die maximale Dateilänge ist dort aufgeführt.

5

gibt es keine Notwendigkeit, es programmatisch zu bestimmen. es ist 255 Bytes.

edit: Sie können längere Dateinamen auf sehr wenigen Dateisystemen haben (Reiser, glaube ich), aber wenn Sie bei 255 bleiben, wird Ihre App auf jeder Linux-Installation verwendbar sein.

0

Ich denke, Sie könnten realpath() verwenden. Ich bin nicht sicher, bester Ansatz, aber zum Beispiel:

$ maxlen = 264-strlen (realpath ('index.php')));

264 255 (max Pfad lim) + 9 ('index.php' len). Wenn Sie also die aktuelle Pfadlänge vom Limit subtrahieren, erhalten Sie die maximale aktuelle Pfadlänge.

+1

können Sie sind verwirrend Pfad max len (in der Regel 4096) mit Dateinamen max len (in der Regel 255). – mark4o