Re: Výpis adreseře na win32 v DOS konvenci

Frantisek Darena darena na akela.mendelu.cz
Čtvrtek Srpen 14 13:22:57 MEST 2003


takze asi nejvhodnejsi teda bude pouzit funkci
Win32::GetShortPathName(PATHNAME), ktere se zada jmeno souboru a ona vrati
jeho kratke jmeno.
F. Darena

On Thu, 14 Aug 2003, Martin Sittek wrote:

> Dík za názor, také jsem původně uvažoval že si ty názvy nějak podobně
> odvodím ale jen do doby než jsme zjistil, že může existovat soubor~2 aniž by
> existovat soubor~1. Konkrétně když si vytvořím třeba adresář "hokuspokus" a
> kouknu na `dir`, pak vidím "HOKUSP~1", pak jej přejmenuji třeba na
> "hokuspokusx" a zase kouknu na `dir` a vidím "HOKUSP~2" aniž by existoval
> "HOKUSP~1". Pak Váš program nebude fungovat správně.
>
> Martin Sittek
>
> ----- Původní zpráva -----
> Od: "Frantisek Darena" <darena na akela.mendelu.cz>
> Komu: "Multiple recipients of list PERL" <perl na muni.cz>
> Odesláno: 14. srpna 2003 10:47
> Předmět: Re: Výpis adreseře na win32 v DOS konvenci
>
>
> >
> >
> > On Tue, 12 Aug 2003, Martin Sittek wrote:
> >
> > > Zdravím vespolek,
> > >
> > > potřeboval bych na win32 (ActiveState) vypsat obsah adresáře ovšem v tom
> > > klasickém DOS formátu - včetně zkrácených jmen. Čili takové to
> > > "hokus~1.txt". Bohužel se mi pořád nedaří nalézt nějakou jednodušší
> cestu
> > > než to přežvýkávat z výpisu `dir` příkazu.
> >
> > Dobry den, muzete pouzit funkce opendir a readdir, ale ta jmena je asi
> > potreba upravit rucne. Uvedeny priklad mi funguje, primo ta jmena
> > vypisuju na konci toho cyklu.
> > F. Darena
> >
> >
> > my %files = ();
> >
> > opendir D, "$jmeno_adresare";
> > while ($_ = readdir D) {
> > my $pripona;
> > my $jmeno;
> >
> > $pripona = $& if /\.[^.]+$/;;
> >
> > $pripona?$jmeno = $`:$jmeno = $_;
> >
> > if (length $jmeno > 8) {
> > /.{6}/;
> > print $&.'~'.++$files{$&}.($pripona?$pripona:'');
> > } else {
> > print;
> > }
> > }
>
>



Další informace o konferenci Perl