Tôi đã tải xuống tệp từ máy chủ FTP qua đối tượng WebClient
mà không gian tên .NET
cung cấp và sau đó ghi byte vào tệp thực tế qua BinaryWriter
. Mọi thứ đều tốt. Tuy nhiên, bây giờ, các tệp đã tăng kích thước đáng kể và tôi lo lắng về các ràng buộc về bộ nhớ vì vậy tôi muốn tạo luồng tải xuống, tạo luồng tệp và đọc từng dòng từ tệp tải xuống và ghi vào tệp.C# Webclient Stream tải xuống tệp từ FTP sang bộ nhớ cục bộ
Tôi lo lắng vì tôi không thể tìm thấy ví dụ điển hình về điều này. Đây là kết quả cuối cùng của tôi:
var request = new WebClient();
// Omitted code to add credentials, etc..
var downloadStream = new StreamReader(request.OpenRead(ftpFilePathUri.ToString()));
using (var writeStream = File.Open(toLocation, FileMode.CreateNew))
{
using (var writer = new StreamWriter(writeStream))
{
while (!downloadStream.EndOfStream)
{
writer.Write(downloadStream.ReadLine());
}
}
}
Tôi có đi về cách này không chính xác/tốt hơn không?
Vâng, và vẫn còn là (các đối tượng yêu cầu là một WebClient [Tôi m cập nhật bài viết của tôi để hiển thị điều này explictly]) nhưng DownladFile sẽ cho tôi toàn bộ tập tin trong bộ nhớ - đối diện với những gì tôi đang tìm kiếm .. – OnResolve
@OnResolve, xin lỗi, tôi đã không đề cập. Vui lòng xem bản cập nhật. –
@OnResolve, tôi đã thêm phiên bản với kích thước bộ đệm tùy chỉnh. –