In meinen Projekten habe ich eine Hilfsklasse namens TempFile. Es hat mehrere statische Methoden, die ich verwenden, um einen Stream (oder ein Array von Bytes, falls erforderlich) in eine temporäre Datei zu schreiben. Hier ist ein vereinfachtes Beispiel eines solchen Verfahrens:
public static string Write(Stream stream)
{
string FileName = Path.GetTempFileName();
// Write the contents of stream to a file with FileName
return FileName;
}
Dann habe ich eine andere Methode, die einen Dateipfad für die spätere Löschung akzeptiert, die ein Mitglied meiner ‚Parsen‘ Klasse ist, obwohl man es in seiner eigenen statischen setzen könnte Hilfsklasse:
public string ForDeletion(string path)
{
ListOfPaths.Add(path);
return path;
}
Schließlich habe ich wie folgt vor:
SomeApiFunction(ForDeletion(TempFile.Write(myStream)));
Dies ist der beste Weg ist, ich habe mit zum umgehen eines API Mangel an Strom Handling-Fähigkeiten kommen.
Sind Sie sicher, dass die Methoden, die Sie aufrufen, keine Überladungen haben, die Streams anstelle von Pfaden verwenden? – MusiGenesis
Ich weiß, dass es eine Reihe von MS-Bibliotheken gibt, die nur Pfade akzeptieren (DirectX ist eines, das mir in den Sinn kommt). Es wird allgemein als schlechtes API-Design betrachtet, aber manchmal haben Sie keine große Auswahl, abgesehen von der Einrichtung einer RAM-Disk. –