Trong các dự án của tôi, tôi có một lớp trợ giúp được gọi là TempFile. Nó có một số phương thức tĩnh mà tôi sử dụng để viết một luồng (hoặc một mảng byte nếu cần) vào một tệp tạm thời. Dưới đây là một ví dụ đơn giản của một phương pháp như:
public static string Write(Stream stream)
{
string FileName = Path.GetTempFileName();
// Write the contents of stream to a file with FileName
return FileName;
}
Sau đó, tôi có một phương pháp mà chấp nhận một đường dẫn tập tin để xóa sau đó là thành viên của lớp 'phân tích' của tôi, mặc dù bạn có thể đặt nó trong tĩnh của riêng mình lớp helper:
public string ForDeletion(string path)
{
ListOfPaths.Add(path);
return path;
}
Cuối cùng, tôi thực hiện như sau:
SomeApiFunction(ForDeletion(TempFile.Write(myStream)));
Đây là cách tốt nhất mà tôi đã đưa ra cho phá vỡ thiếu của một API về khả năng xử lý dòng.
Nguồn
2009-09-24 00:04:46
Bạn có chắc chắn các phương pháp bạn đang gọi không có bất kỳ quá tải nào có luồng thay vì đường dẫn không? – MusiGenesis
Tôi biết có một loạt các thư viện MS chỉ chấp nhận đường dẫn (DirectX là một trong những ý nghĩ đến). Nó thường được coi là thiết kế API kém, nhưng đôi khi bạn không có nhiều sự lựa chọn, thiếu thiết lập một đĩa RAM. –