2009-11-10 3 views
4

실제 프로젝트에 리소스를 저장하는 데 사용했지만 대신 리소스 파일을 사용하도록 전환했습니다. 원래 파일의 바이트를 준비 할 수 있었지만 리소스 파일을 사용하여이 작업을 수행하는 것이 어려웠습니다. 어떤 제안이라도 대단히 감사하겠습니다.C#의 리소스 파일에서 파일 바이트 가져 오기

답변

11
public static byte[] ReadResource(string resourceName) 
{ 
    using (Stream s = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)) 
    { 
     byte[] buffer = new byte[1024]; 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      while (true) 
      { 
       int read = s.Read(buffer, 0, buffer.Length); 
       if (read <= 0) 
        return ms.ToArray(); 
       ms.Write(buffer, 0, read); 
      } 
     } 
    } 
} 
+0

파일을이를 추가합니다. 이 함수를 사용하면 개체 참조 오류가 계속 발생합니다. – williamtroup

+0

그런 다음 현재 실행 컨텍스트가 아닌 리소스로 어셈블리를로드합니다. – Anton

1

또는 자원 클래스에 나는 우리의 링크로 프로젝트라는 자료에 폴더 추가를 읽고 싶은

internal static byte[] GetResource(string fileName) { 
    object obj = ResourceManager.GetObject(fileName, resourceCulture); 
    return ((byte[])(obj)); 
} 
+2

이 솔루션은 작동하지 않습니다. 적어도 obj가 BitMap 인 경우에는 작동하지 않습니다. – Maciej

관련 문제