2014-03-27 5 views
0

Resources 디렉토리에 포함 된 html 파일을 열려고하지만 내 경로가 잘못되었거나 다른 실수를 저지르고있는 것 같습니다.Resources 디렉토리의 파일 열기

현재 양식 클래스에 있으며 사용자가 F1 키를 누르면 파일을 열려고합니다. 일부 포함 된 리소스를 얻고 싶다면

System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
proc.StartInfo.FileName = "f1.html"; 
proc.Start(); 
+0

를 사용하여 HTML 파일을 열려면이 코드 : 여기

은 샘플 코드? 응용 프로그램 리소스 또는 하드 드라이브의 실제 디렉터리? – Oscar

+0

무엇이 오류입니까? 그것은 런타임 또는 컴파일 시간에 있습니까? 그 괄호를 제거 했습니까? –

+0

애플리케이션 리소스를 의미합니다. 오류는 파일을 찾을 수 없습니다. 그렇습니다. – Proton

답변

1

, 당신은 그것은 메모리 스트림을 반환합니다

ResourceManager.GetStream 

http://msdn.microsoft.com/en-us/library/zxee5096.aspx

를 호출해야합니다. 바이트 배열 메모리 스트림을 읽고 일부 임시 위치 바이트 배열을 작성하고, 인수로서 임시 파일의 경로를 사용

Process.Start() 

호출한다.

public class Class1{ 
    public static void Main(string[] args){ 
     FileStream stream = null; 
     string fullTempPath = null; 
     try{ 
      byte[] page = Resources.HTMLPage1; 
      fullTempPath = Path.GetTempPath() + Guid.NewGuid() + ".html"; 
      stream = new FileStream(fullTempPath, FileMode.Create, FileAccess.Write, FileShare.Read); 
      stream.Write(page, 0, page.Length); 
      stream.Flush(true); 
      stream.Close(); 
      Process proc = new Process{StartInfo ={FileName = fullTempPath}}; 
      proc.Start(); 
     } 
     finally{ 
      if (stream != null){ 
       stream.Dispose(); 
      } 
     } 
    } 
} 
+0

왜 파일을 여는 것이 어렵습니까? 왜 임시 위치에 써야합니까? 당신이 나에게 완전한 모범을 보여줄 수 있습니까? – Proton

+0

@ user3438236 너무 힘들지는 않습니다. 몇 단계 만 수행하면됩니다. 샘플 코드로 답변을 업데이트했습니다. 샘플을 작동시키기 위해 HTMLPage1.htm이라는 이진 형식의 프로젝트에 리소스를 추가했습니다. 나는 당신이 디렉토리에 글을 쓰고 있는지 확인하기 위해 임시 직원으로 편지를 작성하는 것이 좋습니다. – Oscar

+0

이것이 나를 위해 작동하지 않습니다 : byte [] page = Resources.HTMLPage1; 리소스를 사용할 수없는 것 같습니다. – Proton

0

를 사용하여 기본 브라우저는 "자원 디렉토리"로 무엇을 의미합니까

 string filename = Environment.CurrentDirectory + System.IO.Path.DirectorySeparatorChar + "f1.html"; 

     System.Diagnostics.Process.Start(filename); 
+0

이 작동하지 않습니다. – Proton

관련 문제