Autor Beitrag
TheUnknown
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: Sa 11.08.07 12:11 
Hi!

Wie kann ich _nur_ den 8.3-Dateinamen einer Dateianpassen?

Wenn die Datei LANG hiesse: "Das ist mein Dokument.pdf", könnte sie KURZ z.B. so heissen: "Dasist~1.pdf".

Jetzt möchte ich aber NUR den kurzen Dateinamen ändern, OHNE, dass der LANGE mitgeändert wird, sodass der kurze z.B. "00001.pdf" lautet.

Ich kann schon den kurzen Dateinamen auslesen, aber nicht setzen. Kann mir da jemand helfen? Oder vll. einen Workaround nennen?
Dezipaitor
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 220



BeitragVerfasst: Sa 11.08.07 20:47 
Und ich dachte der kurze Dateiname wird aus dem langen Dateiname berechnet. Da es vorkommen kann, dass es mehrere gleichlautende kurze Dateinamen gibt.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 12.08.07 03:01 
Überleg doch bitte mal, was das bedeuten würden. Das würde doch bedeuten, dass in der Dateizuordnugstabelle im gleichen Verzeichnis zwei Namen für eine Datei existieren würden. Mit dem kurzen und dem langen Dateinamen verhält es sich wie mit Siamesischen Zwilligen. Wenn du dem einen einen roten Socken anziehst, dann ziehst du auch dem anderen einen roten Socken an. NTFS unterstützt Dateiname mit bis zu 260 Zeichen (Datei + Pfad). Unter 16-Bit DOS konnte aber ein Bezeichner (Ordner, Datei) nur maximal elf Zeichen lang sein. Um die Kompatibilität zu gewährleisten, weil manche Programme nur mit den kurzen Dateinamen arbeiten konnten, wurde der kurze Dateiname noch parallel zu dem langen Dateinamen geführt. Wobei der kurze Name aus dem langen generiert wird.

Ich weiß nicht, was du erreichen willst, aber eventuell sind ja Hardlinks eine Lösung für dich. Hardlinks sind Verknüpfungen auf eine Datei, die aber die Datei auch verändern können. Das heißt ich aheb eien Datei D an eiem Ort O und Alice und Bob haben je einen Link a und B auf die Datei. Öffnen sie die Datei D über ihre Links, kann die Datei von ihnen verändert werden, als wenn sie die Datei normal, direkt geöffnet hätten.
TheUnknown Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: So 12.08.07 10:57 
Sicherlich, der kurze Name ergibt sich aus dem langen, weiss ich.

Aber, um mal ein Beispiel zu bringen, wozu das gut sein soll (denn immerhin ist ja _eigentlich_ total egal, wie der kurze Name lautet)...

In einem Ordner sind 4 MP3-Dateien.

LANG:
** #1 ~~ Testname for Band - Song1.mp3
** #2 ~~ Testname for Band - Song3.mp3
** #3 ~~ Testname for Band - Song3.mp3
** #4 ~~ Testname for Band - Song4.mp3

Jetzt ist es aber so, dass die kurzen Namen nicht unbedingt so heissen:
** #1 ~~ Testna~1.mp3
** #2 ~~ Testna~2.mp3
** #3 ~~ Testna~3.mp3
** #4 ~~ Testna~4.mp3

Sondern bei mir z.B. so:
** #1 ~~ Testna~3.mp3
** #2 ~~ Testna~2.mp3
** #3 ~~ Te65ae~8.mp3
** #4 ~~ Tesztn~3.mp3

Das Problem ist nun, dass mein MP3-Player die Songs zwar mit LANGEN Namen anzeigt, aber sie nach den KURZEN sortiert (sie also in dieser Form abspielt, was mich nervt :))!

Wenn in den ersten 6-8 Zeichen des langen Dateinamens Leerzeichen sind, oder besser noch durchnummerierte Zahlen am Anfang (01 blablabla.mp3; 02 blablabla.mp3; etc.) gibt's da kaum Probleme, weil die ersten 2-3 Zeichen im kurzen Namen dann wohl "richtig" generiert werden. Hat übrigens gedauert, bis ich das alles rausbekam!

Naja, natürlich weiss ich, dass ich den kurzen Namen nicht einfach so ändern darf (sofern das geht), sondern ich gewisse Dinge beachten muss, die ich auch beachten würde (mit Abfragen im Sourcecode), aber ich würde in EINEM Verzeichnis gern sagen: Bennene alle Dateien so, dass sie im kurzen Schema genau der Reihenfolge entsprechen, wie sie es auch im langen Schema tun.

Ich hab's auch schon mit Tricks versucht: Erst alle Dateien im langen Schema ganz umbenennen (z.B. von "MUSIK-Datei von mir.mp3" in "File 0001.mp3"...) und dann werden auch ja die kurzen Namen geändert - und DANN wieder in den eigentlich alten Namen. Das blöde ist nur, dass dann die kurzen Namen genau so vergeben werden, wie sie vor der Umbenennung ebefalls hiessen.

Ich weiss, ich könnte die Dateien auch einfach sofort 01.mp3, 02.mp3, 03.mp3 oder sowas nennen. Oder direkt immer mit Zahlen am Anfang die Namen vergeben, etc.pp. Aber manchmal klappt das nicht, wenn man auf die Schnelle was kopieren will (ausserdem werden dann auch die Dateinamem im Playerdisplay verhunzt) - und ausserdem geht dann die Herausforderung flöten - und ich lern wieder was dazu! :)

Es geht mir also darum, dass die MP3-Dateien NACH dem Kopieren auf meinen Stick schon soweit ok sind, aber dass eben die kurzen Namen (nach denen der Player intern seine Playlist generiert) nicht so angelegt werden, dass der Player bei KURZ _und_ LANG dieselbe Reihenfolge hat...
Blawen
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: So 12.08.07 12:42 
Zitat:
Naja, natürlich weiss ich, dass ich den kurzen Namen nicht einfach so ändern darf (sofern das geht)...

Lies doch nochmal den Beitrag von Luckie durch... :roll: :idea:

_________________
Es kompilert, wir können ausliefern.
Und es kompiliert wieder - das Update ist fertig - bitte 100 Euro ;-)
TheUnknown Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: So 12.08.07 12:53 
user profile iconBlawen hat folgendes geschrieben:
Zitat:
Naja, natürlich weiss ich, dass ich den kurzen Namen nicht einfach so ändern darf (sofern das geht)...

Lies doch nochmal den Beitrag von Luckie durch... :roll: :idea:


Luckies Post schliesst nicht explizit aus, dass es nicht geht, er weisst nur auf die Zusammenhänge hin! ...und die sind mir durchaus bekannt. Denn ich habe lang und breit erklärt, was mir warum aufgefallen ist und erklärte auch ausführlich, was ich erreichen will.

Meine Antwort widerum bedeutete nicht, dass man dann einfach so den kutzen Namen ändert, sondern halt über einen cleveren Workaround irgendwie an's Ziel käme. Man selbst kommt halt nicht immer auf die einfachsten Ideen...
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: So 12.08.07 13:01 
Hallo,

Setz doch eine fortlaufende Nr an den Anfang des Dateinamens, die ersten Zeichen bleiben doch bei der Umwandlung in den kurzen Dateinamen erhalten.
ausblenden Quelltext
1:
2:
3:
4:
01-Ein Lied.mp3 
02-fmasmfmaf .mp3 
03-Testname for Band - Song1.mp3 
04-Testname for Band - Song5.mp3

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
TheUnknown Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: So 12.08.07 15:30 
user profile iconLannes hat folgendes geschrieben:
Hallo,

Setz doch eine fortlaufende Nr an den Anfang des Dateinamens, die ersten Zeichen bleiben doch bei der Umwandlung in den kurzen Dateinamen erhalten.
ausblenden Quelltext
1:
2:
3:
4:
01-Ein Lied.mp3 
02-fmasmfmaf .mp3 
03-Testname for Band - Song1.mp3 
04-Testname for Band - Song5.mp3


Ja, an sowas dachte ich auch schon. Aber natürlich sollte ein fertiges Programm dem User möglichst viel Komfort bieten. Und darum wäre die eleganteste Lösung, den original (bzw. den sichtbaren, also langen) Dateinamen möglichst nicht zu verändern - höchstens kurzeitig, im Sinne es Workarounds, um dann schnell wieder den richtigen Namen herzustellen.
dummzeuch
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 593
Erhaltene Danke: 5


Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
BeitragVerfasst: So 12.08.07 16:03 
Hi,

[quote="[user]Luckie[/user]"]Um die Kompatibilität zu gewährleisten, weil manche Programme nur mit den kurzen Dateinamen arbeiten konnten, wurde der kurze Dateiname noch parallel zu dem langen Dateinamen geführt. Wobei der kurze Name aus dem langen generiert wird.[/quote]

Aber es gibt durchaus den Fall, dass mehrere lange Dateinamen den gleichen kurzen ergaeben, d.h. er kann nicht einfach immer neu generiert werden sondern wird von Windows gespeichert, denn die Zuordnung muss eindeutig bleiben:

"hallowelt2.pas" -> "hallow~1.pas"
"hallowelt1.pas" -> "hallow~2.pas"

Jetzt loesche ich "hallowelt2.pas", aber das aendert nicht den kurzen Namen von "hallowelt1.pas", der ist danach immernoch "hallow~2.pas".

Leider kenne ich auch keine Moeglichkeit den kurzen Namen zu aendern.

twm
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: So 12.08.07 16:35 
Hm... meines Wissens steht der doch bei FAT noch irgendwo drin, oder? Und ein MP3-Player, der NTFS-benutzt wäre mir neu^^

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.