Autor Beitrag
Jakob Schöttl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: Do 27.07.06 11:32 
Hi,
Ich schreibe zur Zeit einen DateiExplorer und brauche dazu eine funktion, die mir nur sagt, ob eine bestimmte Dateiendung (z. B. '.txt') registriert ist.

Das brauch ich, weil ich, wenn man eine datei umbenennt, will, dass, wenn die Endung registriert ist, dieselbe automatisch beibehalten wird. Das hat dann den Vorteil, dass man aus einer mp3 keine txt machen kann...

Ich hoffe es gibt schon eine Funktion, oder wenns nicht anders geht eine kleine Unit, oder Quellcode.

Ich wäre euch sehr dankbar!
digi_c
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1905

W98, XP
D7 PE, Lazarus, WinAVR
BeitragVerfasst: Do 27.07.06 11:45 
Du könntest eigentlich einfach in der Registry HKEY_CLASSES_ROOT durchgehen aber sicherlich geht das auch noch anders (vielleicht per Dateidetails per SH... ShellAPI Befehle).

Aber mri als Endbenutzer würde solche Bevormundung garnicht gefallen, man kann immer und überall Dateien umbenennen ;)
Jakob Schöttl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: Do 27.07.06 12:02 
Ok, da schau ich mal.
Das mit den Dateien umbenennen hab ich mir so gedacht: Der normale Benutzer kann die registrierten Endungen nicht umbenennen. Aber Programmierer (ich brauch das manchmal), können auch registrierte Endungen umbenennen. Da gibts bei meinem Programm dann Einstellungen, ZugriffOptionen.
Coder
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1383
Erhaltene Danke: 1

WinXP
D2005 PE
BeitragVerfasst: Do 27.07.06 12:08 
Ich würde so eine Funktion auch nicht begrüßen.
Wenn ich einen Film zu .divx umwandle schreib ich trotzdem .avi dahinter.
Und wieso solls nur bei registrierten Dateiendungen gehen?
Nützlich wäre es wenn beim Datei umbenennen automatisch die alte Endung angehängt wird, wenn man keine hinschreibt.
Jakob Schöttl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: Do 27.07.06 12:34 
wenn ich aber ordner hab, wird die endung auch extrahiert, auch wenn das überhaupt keienn sinn hat! Oder bei dateien, die eigentlich keine endung haben, sondern nur "Borland.Shared" heißt. Da hat ja das Shared nix mit einer ENdung zu tun.
Ich find das jedenfalls ziemlich sinnvoll.

ich hab jetzt eine Funktion, die ganz gut funkioniert:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function RegisteredExt(Ext: string): Boolean;
var reg: TRegistry;
begin
  Result := False;
  if (Length(Ext) > 2) and (ext[1] = '.') then try
    reg := TRegistry.Create;
    reg.RootKey := HKey_Classes_Root;
    reg.OpenKeyReadOnly('');
    if reg.KeyExists(Ext) then Result := True;
  finally
    reg.Free;
  end;
end;
Jakob Schöttl Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: Do 27.07.06 12:41 
Seht mal:
Ich hab also ein Programm, das von jeder ausgewählten Datei den Pfad, den Namen ohne Endung und die Endung spaltet, in drei Edits. Es wäre aber zugegeben sinnlos, wenn in dem Edit für die Endung '.Shared' steht. Das ist nur ein Beispiel, aber so was gibts ja.