2010-10-20 66 views
6

Làm cách nào để mở tệp được nhúng trong tệp tài nguyên, như tệp trên đĩa cứng (có đường dẫn tuyệt đối)?.NET: Mở tệp, được nhúng vào tệp tài nguyên

+0

Bạn có ý nghĩa gì khi mở? Bạn có nghĩa là tải nội dung nhị phân? – Aliostad

+0

Đây là một chút khó hiểu. Bạn đang nói về việc truy cập tài nguyên được nhúng hoặc những tài nguyên trên đĩa cứng của bạn? – InSane

Trả lời

11

Giả sử bạn có tệp test.xml được nhúng vào hội đồng. Bạn có thể sử dụng phương pháp GetManifestResourceStream để lấy luồng chỉ về phía nội dung:

class Program 
{ 
    static void Main() 
    { 
     var assembly = Assembly.GetExecutingAssembly(); 
     using (var stream = assembly.GetManifestResourceStream("ProjectName.test.xml")) 
     using (var reader = new StreamReader(stream)) 
     { 
      Console.WriteLine(reader.ReadToEnd()); 
     } 
    } 
} 

Bằng cách này, nội dung của tệp được đọc vào bộ nhớ. Bạn cũng có thể lưu nó vào đĩa cứng và sau đó truy cập bằng đường dẫn tuyệt đối nhưng điều này có thể không cần thiết vì bạn đã có nội dung của tệp.

+2

Bạn cần phải bao gồm không gian tên mặc định của dự án trước tên tệp, không phải tên dự án. – Rich

+0

Nếu tệp không tồn tại dưới dạng tài nguyên được nhúng, biến 'luồng' của bạn sẽ là rỗng. Điều này sẽ gây ra một ngoại lệ khi tạo StreamReader của bạn. – Kilhoffer

Các vấn đề liên quan