ursus contionabundo: Perl Filesystem Encoding erkennen

Beitrag lesen

Bei Lesen aus dem Dateisystem brauchst Du Dich um die Namen um die es Dir wohl geht) nicht weiter kümmern. Ich vermute mal, Du willst letztendlich die gültigen und nicht reservierten Zeichen wissen um beim oder besser nach dem Schreiben keine Probleme zu haben.

Linux/Unix/Mac

Mit den gängigen Linux-Dateisystemen und auf Macs wirst Du kaum Probleme haben. Da sind alle Zeichen - sogar Steuerzeichen - gültig. Einige müssen aber "escaped" werden (Verzeichnistrenner und sonstige reservierte Zeichen).

Ausnahme: Das NUL-Byte.

Windows:

Dazu steht was im "Windows Dev Center".

Stellt sich die Frage, wie Du das Dateisystem erfährst auf dem Du gerade schreiben willst.

Stelle einfach fest unter welchen OS Dein Perl-Skript läuft. Ist es Windows, dann gehe einfach von einem Windows-Dateisystem aus. Selbst wenn jemand das Kunststück fertigbringt, unter Windows Unixoide Dateisysteme zu betreiben, dann bleibe dabei, falls derjenige die Dateien auch mal auf eines der unter Windows gängigen Dateisysteme kopieren will gibt es sonst erhebliche Probleme. Unter Unix/Linux/Mac sollte das hier das Dateisystem liefern:

#! /bin/sh

dir=$1;

if [ "" = "$dir" ]; then
    dir='.';
fi

if [ -d $dir ]; then

  mount | grep -P "^$(df $dir | cut -d ' ' -f1 | tail -n1) " | cut -d ' ' -f5;
  exit 0;

else 

  echo "Fehler: '$dir' ist kein Verzeichnis." 1>&2;
  exit 1;
  
fi

Ist es fat, fat32, vfat, extfat, ntfs (bis hierher: Windows) gilt obiges mit den Einschränkungen für fat ("8.3-Dateinamen"). Ist es iso9660, Rockridge oder joliet (CD, DVD) dann such die Regeln dafür raus...

0 92

Perl Filesystem Encoding erkennen

beatovich
  • perl
  1. 0
    dedlfix
    1. 0
      beatovich
      1. 0
        pl
      2. 0
        pl
        1. 0
          beatovich
          1. 0
            pl
            1. 0
              beatovich
              1. 0
                pl
                1. 0
                  beatovich
                  1. 0
                    pl
                    1. 0
                      pl
                      1. 0
                        beatovich
                    2. 0
                      beatovich
                      1. 0
                        pl
                        1. 0
                          beatovich
                          1. 0
                            pl
                            1. 0
                              beatovich
                              1. 0
                                Tabellenkalk
                              2. 0
                                pl
                                1. 0
                                  beatovich
                                2. 0
                                  beatovich
                                  1. 0
                                    pl
                                    1. 0
                                      beatovich
                                      1. 0
                                        pl
                                        1. 0
                                          beatovich
                                          1. -2
                                            pl
                                            1. 0
                                              beatovich
                                              1. 0
                                                pl
                                              2. 1
                                                Rolf B
                                                1. 0
                                                  beatovich
                                                  1. 0
                                                    Rolf B
                                                    1. 0
                                                      beatovich
                                                    2. -1
                                                      pl
                                                      1. 0
                                                        beatovich
                                                        1. -1
                                                          pl
                                                      2. 1
                                                        Rolf B
                                                        1. -1
                                                          pl
                                                          1. 0
                                                            Rolf B
                                                            1. 0
                                                              beatovich
                                                              1. 0
                                                                Rolf B
                                                                1. 0
                                                                  beatovich
                                                                  1. 0
                                                                    Rolf B
                                                            2. 0
                                                              pl
                                                        2. -1
                                                          pl
                                                        3. 0
                                                          pl
                                                          1. 0
                                                            dedlfix
                                                            1. 0
                                                              pl
                                                              1. 1
                                                                dedlfix
                                                                1. 0
                                                                  pl
    2. 1
      ursus contionabundo
      1. 0
        ursus contionabundo
        1. 0
          TS
          • dateisystem
          • perl
          1. 0
            ursus contionabundo
        2. 0
          Robert B.
          1. 0
            pl
            1. 1
              Matthias Apsel
              • sonstiges
              1. -1
                pl
                1. 0
                  dedlfix
                  1. 0
                    pl
                    1. 0
                      dedlfix
                      1. 0
                        pl
                        1. 0
                          dedlfix
                          1. -1
                            pl
                            1. 0
                              dedlfix
                              1. 0
                                pl
                            2. 0
                              Christian Kruse
                              1. -1

                                Woran erkennt man einen Bug

                                pl
                                1. 0
                                  dedlfix
                                  1. 0
                                    Rolf B
                                    1. -3
                                      pl
                                      1. 1
                                        Robert B.
                                  2. 0
                                    pl
                                  3. 0

                                    Woran erkennt man einen Bug, updated

                                    pl
                                    1. 0
                                      dedlfix
                                      1. -1
                                        pl
                                2. 6
                                  Christian Kruse
                                  1. -2
                                    pl
                                    1. 5
                                      Christian Kruse
                2. 0
                  beatovich
                3. 0
                  Robert B.
                  1. 0

                    Systematische Fehler

                    pl
                    1. 0
                      Robert B.
            2. 0
              Robert B.
          2. 0
            ursus contionabundo
            1. 0
              Robert B.
  2. 0
    TS
  3. 0
    pl
  4. 0
    klawischnigg
    1. 0
      pl
      1. 0
        klawischnigg
        1. -1
          pl