Dans mes projets, j'ai une classe d'assistance appelée TempFile. Il a plusieurs méthodes statiques que j'utilise pour écrire un flux (ou un tableau d'octets si nécessaire) dans un fichier temporaire. Voici un exemple simplifié d'une telle méthode:
public static string Write(Stream stream)
{
string FileName = Path.GetTempFileName();
// Write the contents of stream to a file with FileName
return FileName;
}
Ensuite, j'ai une autre méthode qui accepte un chemin de fichier pour la suppression ultérieure qui est un membre de ma classe « parsing », bien que vous pouvez le mettre dans son propre statique classe aide:
public string ForDeletion(string path)
{
ListOfPaths.Add(path);
return path;
}
Enfin, je fais ce qui suit:
SomeApiFunction(ForDeletion(TempFile.Write(myStream)));
C'est la meilleure façon que je suis venu avec pour contourner le manque de capacités de traitement des flux d'une API.
Etes-vous sûr que les méthodes que vous appelez n'ont pas de surcharges qui prennent des flux au lieu de chemins? – MusiGenesis
Je sais qu'il y a un tas de bibliothèques MS qui n'acceptent que les chemins (DirectX est celui qui me vient à l'esprit). Il est généralement considéré comme une mauvaise conception d'API, mais parfois vous n'avez pas beaucoup de choix, à moins de configurer un disque RAM. –