effel: Datei vorhanden?

Hallo Freunde

ich will prüfen, ob eine Datei vorhanden ist und benutze:

fs.existsSync("dateiname")

das klappt auch, leider wird nicht zw Groß und Kleinschreibung unterschieden

Also "dateiname" und "DATEIname" werden gleich behandelt.

Ich möchte es case-sensetiv haben!

Danke

  1. Hallo

    ich will prüfen, ob eine Datei vorhanden ist und benutze:

    fs.existsSync("dateiname")

    das klappt auch, leider wird nicht zw Groß und Kleinschreibung unterschieden

    In welchem Betriebssystem versuchst du das?

    Tschö, Auge

    --
    „Habe ich mir das nur eingebildet, oder kann der kleine Hund wirklich sprechen?“ fragte Schnapper. „Er behauptet, nicht dazu imstande zu sein“ erwiderte Victor. Schnapper zögerte (…) „Nun …“ sagte er schließlich, „ich schätze, er muss es am besten wissen.“ Terry Prattchett, Voll im Bilde
  2. Lieber effel,

    interessantes Tag „essays“ verwendest Du da... o_O

    Also "dateiname" und "DATEIname" werden gleich behandelt.

    Das klingt nach Windows. Dort ist Dein Problem nicht lösbar.

    Liebe Grüße

    Felix Riesterer

    1. Hallo Felix,

      Lieber effel,

      interessantes Tag „essays“ verwendest Du da... o_O

      Also "dateiname" und "DATEIname" werden gleich behandelt.

      Das klingt nach Windows. Dort ist Dein Problem nicht lösbar.

      Es geht imho um das file System bei node.js

      Ihr habt da im Wiki leider nur einen Stub:

      Node.js/Webserver#File_System

      Bis bald!
      Jonathan

      --
      Wenn du 1 Strich an die Wand malst, um zu sehen wie viel du gewachsen bist.
      Früher:
      ___
      ___
      ___
      Heute:
      ) ) ) )
      1. Lieber Jonathan,

        Es geht imho um das file System bei node.js

        wäre node.js denn prinzipiell in der Lage die Dateinamen case-sensitive zu behandeln, wenn Windows als unterliegendes OS es nicht kann?

        Ihr habt da im Wiki leider nur einen Stub:

        Node.js/Webserver#File_System

        Da ich keinerlei Berührungen mit node.js habe und hatte, kann ich da leider nichts zu beitragen.

        Liebe Grüße

        Felix Riesterer

  3. Hallo effel,

    wenn du case-sensitive in Nodejs für fs module haben möchtest, musst du auch ein entsprechendes Filesystem verwenden, das case-sensitive ist. Sonst wird das nichts. Steht auch so in der Doku von Node.js

    "Case Preservation

    You may create a directory called test/abc and be surprised to see sometimes that fs.readdir('test') returns ['ABC']. This is not a bug in Node. Node returns the filename as the filesystem stores it, and not all filesystems support case-preservation. Some filesystems convert all filenames to uppercase (or lowercase)."

    Kurzum, nutze ein Betriebssystem, das entsprechende Filesysteme beherrscht/unterstützt. Oder nutze eine Datenbank, mit der man gut ein FS (mit einem Wrapper) immitieren kann.

    Gruss

    Michael

  4. Hallo effel,

    du kannst globSync("dateiname") verwenden.

    Zuerst sicher stellen, dass der Name kein Wildcardzeichen enthält. Dann globSync aufrufen. Das Ergebnis ist, weil keine Wildcards im Namen sind, ein Array mit 0 oder 1 Einträgen.

    0 Einträge: Datei existiert nicht. 1 Eintrag: dateiname wie im Filesystem. Führe einen Stringvergleich durch um sicher zu sein, dass die Schreibweise passt.

    Ob das SINNVOLL ist, ist eine andere Frage.

    Unter Windows kann man, wenn WSL aktiv ist und man NTFS verwendet, pro Verzeichnis festlegen, ob es case sensitive sein soll. Ich habe das mal gemacht, weil ich ein git Repository klonen musste, das Dateien enthielt die sich nur in der Schreibweise unterschieden. Ich müsste erstmal raussuchen, wie das geht.

    Rolf

    --
    sumpsi - posui - obstruxi
    1. Hallo an alle die auf meine Frage geantwortet haben:

      Ich habe verstanden: case-sensitive ist Sache des verwendeten Systems, also bei mir Windows. Und tatsächlich ist "DATeiname" == DateiName" Ich habe das in meinen Bschreibungen ergänzt.

      Danke an alle die schrieben haben

      Effel