Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dateityp auslesen (https://www.delphipraxis.net/78927-dateityp-auslesen.html)

Balu der Bär 13. Okt 2006 09:43


Dateityp auslesen
 
Moin,

ich hab mich jetzt schon dumm und dusselig gesucht, kann es aber einfach nicht finden. Ich möchte gerne den Dateityp einer Datei auslesen, sprich also wenn ich auf eine *.txt-Datei rechtsklicke und Eigenschaften wähle, zeigt der Windows-Dialog mir unter Dateityp Textdatei an. Wie kann ich dies aus meinem Programm heraus auslesen? Praktisch wäre wenn man parallel dazu noch auslesen könnte, mit welchem Programm dieser Dateityp standardmäßig verknüpft ist. Hat da jemand eine Idee? Danke schonmal. ;)

uwewo 13. Okt 2006 09:45

Re: Dateityp auslesen
 
Schau in die Registry

Balu der Bär 13. Okt 2006 09:50

Re: Dateityp auslesen
 
Zitat:

Zitat von uwewo
Schau in die Registry

Die Registry ist groß, hast du da zufällig einen genaueren Pfad?

r2c2 13. Okt 2006 09:55

Re: Dateityp auslesen
 
HKCR\.txt

mfg

Christian

Balu der Bär 13. Okt 2006 09:57

Re: Dateityp auslesen
 
Ah okay, danke erstmal.

Balu der Bär 13. Okt 2006 10:10

Re: Dateityp auslesen
 
Also provisorisch geht es erstmal so:
Delphi-Quellcode:
function GetContentType(FileExt: String) : String;
begin
  with TRegistry.Create do
  begin
    try
      Rootkey := HKEY_CLASSES_ROOT;
      if OpenKey(FileExt, True) then
      begin
        result := ReadString('Content Type');
      end;
    finally
      Free;
    end;
  end;
end;
Das Ergebnis ist jedoch nicht unbedingt was ich haben wollte, so bringt eine Abfrage von .txt z.B. text/plain, der Windows Explorer zeigt aber "Testdokument" an. Wie kann ich exakt diesen Wert auslesen? Bei Photoshop-Dateien gibt es nämlich z.B. gar keinen Key "Content Type", sodass dort nichts ausgelesen werden kann. :-(

Thorben77 13. Okt 2006 10:23

Re: Dateityp auslesen
 
Durch ein bisschen Suchen gefunden:
Im Schlüssel „.txt“ gibt es bei mir als Standardwert „txtfile“, wenn man dann bei HKCR unter „txtfile“ guckt, gibt's wieder 'nen Standardwert: das gesuchte „Textdatei“. (Ich hoffe mal, dass das für alle Dateitypen so zu finden ist.)

MathiasSimmack 13. Okt 2006 10:30

Re: Dateityp auslesen
 
@Balu: Du könntest auch einen Blick in die berühmten Win32-API-Tutorials von Luckie werfen. In der List-View-Demo (erweitert von einem jungen, talentierten Programmierer mit den Initialen des Microsoft Installers :stupid:) findest du die [dp="SHGetFileInfo SHGFI_TYPENAME"]Lösung[/dp]. :lol:

Balu der Bär 13. Okt 2006 10:47

Re: Dateityp auslesen
 
Danke an euch alle, es klappt jetzt. :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz