Echt jetzt? Den ganzen File in Memory laden um festzustellen, ob in der 1. Zeile ein Token steht...
Vielleicht so?
Delphi-Quellcode:
function IsM3UFile(const AFileName: string): BOOLEAN;
var
FileStream: TFileStream;
LineBuffer: TBytes;
Encoding: TEncoding;
Line: string;
begin
Result := False;
FileStream := TFileStream.Create(AFileName, fmOpenRead);
try
SetLength(LineBuffer, 7);
FileStream.Read(LineBuffer[0], Length(LineBuffer));
TEncoding.GetBufferEncoding(LineBuffer, Encoding);
Result := Encoding.GetString(LineBuffer).StartsWith('#EXTM3U');
finally
FileStream.Free;
end;
end;
B := IsM3UFile();
Kann man eventuell noch umschreiben, sodass #EXTM3U reingeschrieben wird, wenn es nicht existiert.