![]() |
Wie in Datei-Eigenschaften Dateiinfo schreiben?
Hi,
habe ein Problem, Wie kann ich Delphi (6) anweisen beim erstellen/editieren von *.INI/*.vi/*.info-Dateien, welche alle auf txt-Code beruhen in die Datei-Eigenschaften Dateiinfo unter dem Punkt "Autor" oder "Kommentar" zu schreiben. Möchte dort gerne das zuletzt verwendete Edit-Programm (Mein Prog) und dessen Version hinterlegen. Ist sowas möglich? Zweite Frage kann es Probleme geben - wenn die so veränderte Datei vom org.Programm eingelesen wird? thx |
Re: Wie in Datei-Eigenschaften Dateiinfo schreiben?
Guck mal hier:
![]() Diese Informationen werden im Dateisystem gespeichert und beeinflussen irgend welche anderen Programme nicht, es sei denn sie benötigen diese Informationen. Unterstützen tut das unter Windows aber nur NTFS. Diese Informationen gehen verloren, wenn die Datei auf einen nicht NTFS Datentäger kopiert wird bzw. sind gar nicht erst unter einem nicht NTFS Datenträger verfügbar. |
Re: Wie in Datei-Eigenschaften Dateiinfo schreiben?
Zitat:
mein Programm vereinfacht das Editieren von Datenbanken bzw. erstellt neue DB-Dateien für ein Win32-Programm (Hauptsächlich auf WinXP teils noch 2000 bzw evtl. Vista32 - Daher gehe ich mal von NTFS aus oder arbeitet noch jemand mit FAT32). Damit ich Fehler durch meinen externen Editor besser aufspüren/Patchen kann, dachte ich mir, da ich weder im DB-Dateinamen noch in der Datei Hinweise hinterlassen kann, das nur die Dateieigenschaften bleiben halt wie bei den MP3-Dateien, wo alles Mögliche wie Album,... inden Eigenschaften verewigt wird. Das SetFileInfo.zip Programm ist recht umfangreich, gibt es keinen Code, mit dessen Hilfe ich sofort bei xxx.savetofile... diesen "Marker" in den Eigenschaften hinterlassen kann? |
Re: Wie in Datei-Eigenschaften Dateiinfo schreiben?
Wenn du dir den Quellcode mal etwas genauer angeguckt hättest, hättest du gesehen, dass du eigentlich nur drei Routinen brauchst und die Unit Storage.pas:
Delphi-Quellcode:
Bitte einfach mal etwas mehr Eigeninitiative zeigen. :?
function SaveFileInfo(Filename: string; mal: TMultipleArrayList): Boolean;
begin result := SetMultipleFileSummaryInfo(Filename, FMTID_SummaryInformation, mal); end; function FillFileInfoArray(StringGrid: TStringGrid): TMultipleArrayList; begin SetLength(result, StringGrid.RowCount); with StringGrid do begin result[0].pidInfoStr := PChar(Cells[1, 0]); result[0].pidInfoType := PIDSI_TITLE; result[1].pidInfoStr := PChar(Cells[1, 1]); result[1].pidInfoType := PIDSI_SUBJECT; result[2].pidInfoStr := PChar(Cells[1, 2]); result[2].pidInfoType := PIDSI_KEYWORDS; result[3].pidInfoStr := PChar(Cells[1, 3]); result[3].pidInfoType := PIDSI_COMMENTS; result[4].pidInfoStr := PChar(Cells[1, 5]); result[4].pidInfoType := PIDSI_TEMPLATE; result[5].pidInfoStr := PChar(Cells[1, 5]); result[5].pidInfoType := PIDSI_AUTHOR; result[6].pidInfoStr := PChar(Cells[1, 6]); result[6].pidInfoType := PIDSI_REVNUMBER; end; end; procedure TForm1.btnSaveClick(Sender: TObject); var FileFolder: string; mal: TMultipleArrayList; resourcestring rsNoFile = 'Keine Datei ausgewählt'; begin mal := nil; try FileFolder := ShellListView1.Folders[FLastItem].PathName; SetLength(mal, StringGrid1.RowCount); mal := FillFileInfoArray(StringGrid1); SaveFileInfo(FileFolder, mal); except MessageBox(Handle, PChar(rsNoFile), APPNAME, MB_ICONWARNING); end; end; Und 624 Zeilen, sind für dich umfangreich? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz