AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DelphiNeroApi - Dateien übergeben

Ein Thema von Gina · begonnen am 13. Mär 2005 · letzter Beitrag vom 7. Okt 2006
Antwort Antwort
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#1

Re: DelphiNeroApi - Dateien übergeben

  Alt 16. Mär 2005, 17:41
Hi,

danke für den Tipp. Bin gestern dort abgestorben, da mein Kopf irgendwie nach einer Pause geschrieen hat

Hab das mal in etwa so eingebaut. Die Abfrage nach '.' und '..' hab ich vorn angestellt. Außerdem hab ich noch ne Try finally eingebaut. Momentan sieht die procedure AddFileToRootIsoItem so aus:

Delphi-Quellcode:
procedure TForm1.AddFileToRootIsoItem(var RootItem: PNeroIsoItem; FileName: String);
var
  FileTime: TDateTime;
  tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_msec: WORD;
  TempItem, SubDirItem: PNeroIsoItem;
  sr: TSearchRec;
begin
  TempItem := RootItem;

  if not (RootItem.fileName = '') then
  begin
    while Assigned(TempItem.nextItem) do
      TempItem := TempItem.nextItem;

    TempItem.nextItem := NeroCreateIsoItem();
    TempItem := TempItem.nextItem;
  end;

  StrPCopy(TempItem.fileName, ExtractFileName(FileName));
  TempItem.fileName[SizeOf(TempItem.fileName) - 1] := #00;

  StrPCopy(TempItem.sourceFilePath, FileName);
  TempItem.fileName[SizeOf(TempItem.sourceFilePath) - 1] := #00;

  If DirectoryExists(FileName) then
     FileTime := now
  else
     FileTime := FileDateToDateTime(FileAge(FileName));
  DecodeDateTime(FileTime, tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_msec);

  TempItem.entryTime.tm_year := tm_year;
  TempItem.entryTime.tm_mon := tm_mon;
  TempItem.entryTime.tm_wday := DayOfTheWeek(FileTime);
  TempItem.entryTime.tm_mday := DayOfTheMonth(FileTime);
  TempItem.entryTime.tm_yday := DayOfTheYear(FileTime);
  TempItem.entryTime.tm_isdst := WORD(False);
  TempItem.entryTime.tm_hour := tm_hour;
  TempItem.entryTime.tm_min := tm_min;
  TempItem.entryTime.tm_sec := tm_min;

  TempItem.isReference := False;
  TempItem.isDirectory := DirectoryExists(FileName);
  TempItem.importinfo := nil;
  TempItem.userData := nil;
  TempItem.subDirFirstItem := nil;
  SubDirItem := nil;

  if TempItem.isDirectory then
    if FindFirst(IncludeTrailingPathDelimiter(FileName) + '*.*', faAnyFile + faHidden + faArchive + faReadOnly + faSysFile + faDirectory, sr) = 0 then
    try
      repeat
       if (SR.Name <> '.') and (SR.Name <> '..') then begin
        if Assigned(SubDirItem) then
        begin
          SubDirItem.nextItem := NeroCreateIsoItem();
          SubDirItem.fileName := '';
          SubDirItem := SubDirItem.nextItem;
        end
        else
        begin
          SubDirItem := NeroCreateIsoItem();
          SubDirItem.fileName := '';
          TempItem.subDirFirstItem := SubDirItem;
        end;

        AddFileToRootIsoItem(SubDirItem, IncludeTrailingPathDelimiter(FileName) +sr.Name);
       end;
      until FindNext(sr) <> 0;
    finally
      FindClose(sr);
    end;
end;
So ganz klappt es aber noch nicht. Er brennt zwar den Ordner, aber der Inhalt ist nicht zu sehen. Außerdem bekomme ich ständig diese Meldungen:
Zitat:
Joliet names of these files (listed here in ISO-L3) are the same
Als wenn er die Zeichenanzahl des kompletten Pfades mitzählen würde. Mit nem ganz kurzen Pfad konnte ich wenigstens brennen, aber wie gesagt, der Inhalt ist nicht zu sehen. Die Optionen für die langen Pfad- und Dateinamen hab ich noch nicht gefunden... Welche Flags benutzt du?

Bis denne, Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:55 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