Se convertește la un nume lung de fișier pe scurt

Se convertește la scurt numele de fișier lung.

Bună, trivială, poate o întrebare proastă care apare adesea, dar CUM.

Windows Înțelegerea mea

1 nume și a ta? # xA0;








// ------------------------------------------------ ---------------------
// Restaurează nume de fișiere lungi prin cele scurte (8.3)
// Ca argument se ia pe deplin sau incomplet (inclusiv relativ)
// calea către fișier, de exemplu "C: \ WINDOWS \ WORKS

1.LNK "sau
// ".. \ .. \ COMUN

1. TXT. "Înțelege numele rețelei.
// Returnează calea completă (!) De tipul "C: \ Windows \ Desktop \ și așa mai departe";
// "C: \ Program Files \ Fișiere comune \ Borland Shared \ BDE \ bdereadme.txt",
// "\\ Computer \ resource \ Folder cu nume lung \ Fișier cu nume lung.e.ext"
// ------------------------------------------------ ---------------------

funcția RestoreLongName (fn: șir): șir;

# xA0; fn: = ExpandFileName (fn);
# xA0; Rezultat: = GetNextFN;
# xA0; repetați
# xA0; # xA0; nume: = GetNextFN;
# xA0; # xA0; Rezultat: = Rezultat + "" + LookupLongName (Rezultat + "" + nume);
# xA0; până la lungimea (fn) = 0;
se încheie;

Am gasit aceasta sursa inainte, dar sunt plictisitoare sau nu functioneaza.
RestoreLongName (numele unui fișier scurt), dar cum să returnați unul lung?

Vreți ca, pe baza unor astfel de informații scurte, să determinăm dacă muriți sau nu?

Cum să treci o funcție la un nume scurt și a returnat un nume de fișier lung. Asta-i proastă.

Da, doar S: = RestoreLongName (S)

Funcția returnează calea și numele fișierului SCURT. Deci, există o speranță că nu tuplyu :-)

> Funcția returnează o cale și un nume de fișier SCURT. Deci, există o speranță că nu tuplyu :-)
dimpotrivă, cu o forță teribilă. ; o)
Specificați calea care există și fișierul nu există.

sa permis sa modifice putin aceasta procedura, asa ca va fi mai clara, inlocuieste LookupLongName cu aceasta

funcția LookupLongName (nume de fișier const: string): șir;
var
# xA0; sr: TSearchRec;
începe
# xA0; dacă FindFirst (nume fișier, faAnyFile, sr) = 0 atunci începe
# xA0; # xA0; Rezultat: = sr.Num;
# xA0; # xA0; FindClose (sr);
# xA0; incheie altceva
# xA0; # xA0; Rezultat: = "Folosiți numai numele / căile existente"; // ExtractFileName (nume fișier);
se încheie;

NU functioneaza functia si asta este.

Trebuie să în loc de HAND

1.DOC a fost obținut MANUAL.DOC.

> NU functioneaza functia si toate.
nu poate fi.

Încă o dată, dacă specificați o cale / nume inexistente pe acest computer, acesta va reveni la fel ca la întrebarea. (sau în versiunea mea de D: \ Specificați numai nume / căi existente.] Specificați numai nume / căi existente (nu există o cale din primul director))






Vedeți asta în eticheta de 1 / 2m?

# xA0; dacă OpenDialog1.Execute începe apoi
# xA0; # xA0; st: = OpenDialog1.FileName;
# xA0; # xA0; GetShortPathName (@st [1], @st [1], lungime (st));
# xA0; # xA0; Label1.Caption: = st;
# xA0; # xA0; Label2.Caption: = RestoreLongName (Label1.Caption);
# xA0; sfârșitul; # xA0;

> Trebuie să înlocuiesc

1.DOC a fost obținut MANUAL.DOC.
dar există un astfel de fișier pe computer? cu numele MANUAL.DOC? Aceasta este o componentă foarte importantă.

Și ce, GetFullPathName nu se potrivește?

Fișierul există, dar numele nu este convertit.
Codul sursă cu LAVELs funcționează, dar NUMELE FILE este, de asemenea, același, deși calea se convertește.

Decât să dovedești existența dosarului, poate te gândești.


> t100 # xA0; (7 iunie 2004 15:21)
> Am nevoie

Odată ce este necesar - așa scrie.
Ce, nu sunt creiere?
În plus, ați dat o grămadă de exemple.
Nu este întotdeauna la fel pentru voi, alții vor gândi.

> Făcând dovada că dosarul există, poate doar crezi.
Pot trimite prin poștă.

T100 # xA0; (07.06.04 16:12) [19]
Aceasta nu este dovada.
Pentru totdeauna, nu ați dat niciodată nume, informații despre modul în care transmiteți și ce valori specifice, directorul curent.

Există dosar DO9D77

1.DOC, localizat în dosarul C: \ Documents and Settings \ numas \ Desktop \ procuror.Real numele fișierului CONTRACT OF CONTRACT.DOC.
utilizând
# xA0; dacă OpenDialog1.Execute începe apoi
# xA0; st: = OpenDialog1.FileName;
# xA0; GetShortPathName (@st [1], @st [1], lungime (st));
# xA0; Label1.Caption: = st;
# xA0; Label2.Caption: = RestoreLongName (Label1.Caption);
se încheie; # xA0;
avem # xA0; Label1.Caption este C: \ DOCUME

1.DOC și # xA0; Label2.Caption -C: \ Documente și setări \ numas \ Desktop \ Attorney \ DO9D77

1.DOC, WHERE este conversia numelui fișierului?

Și în explorator, acest fișier arată exact ca un CONTRACT. DOC CONTRACT?

# xA0; st: = OpenDialog1.FileName;
# xA0; GetShortPathName (@st [1], @st [1], lungime (st)); # xA0; Label1.Caption: = st;

nu, se pare ca DO9D77

1.DOC, în sugestia când se afișează headerul fișierului CONTRACT OF CONTRACT.DOC.

T100 # xA0; (07.06.04 16:55) [25]
Ce dorești, nu ai nici măcar un nume lung ca atare și cursorul arată proprietățile documentului.

Problema este că, după ce nu am instalat corect sistemul de operare, toate numele de fișiere au trecut pe cele scurte, dar aș vrea să le restaurez la cele lungi.

Pot ruga din fiecare fișier vordovogo o primă propoziție (un anumit număr de caractere) și să redenumesc numele în ele?

Aici a fost necesar să începem cu asta. Rețineți, o întrebare cu totul diferită decât subj.
Trebuie să luați numele documentului și să redenumiți fișierul, oferindu-i acel nume.

Da, dar acum, ce înseamnă să "luați numele documentului"?

Dă atunci cine poate linkul, vă rog, să lucrați cu documente Word prin OLE.

Unele fișiere au proprietăți. Acest lucru se aplică în special documentelor de birou. Dacă apelați proprietățile unui document într-un Word, le puteți vedea complet. Este același lucru dacă vă uitați la proprietățile unui fișier. De exemplu, am un câmp Titlu în fila "Document".
Și oricare dintre aceste proprietăți poate fi obținută prin ActiveX. Multe proprietăți sunt predefinite, de exemplu, numele este PIDSI_TITLE;)
Și obțineți tot prin stgOpenStorage și IPropertySet
Pe internet, cu siguranță, există multe de spus despre această problemă. În cazul în care nu - pliz întrebări suplimentare în noul subiect în Corba COM

> Unele fișiere au proprietăți.
> Eu, de exemplu, în fila "Document" este câmpul Titlu.
și nu coincid întotdeauna, a deschis primul doc
numele fișierului
Neconcordanța datelor în control.doc
și pe fila din numele câmpului
Problema. # xA0; nepotrivire a datelor în verificare și în baza de date cu încărcare paralelă

care nu sunt de acord, o), dosarul nu este al meu. Cred că în primul rând este salvat într-un Cuvânt și după ce numele este corectat.







Articole similare

Trimiteți-le prietenilor: