반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발꿈나무

[Blazor] xml 파일 Chrome으로 열기 - Process.Start() 본문

C#/Blazor

[Blazor] xml 파일 Chrome으로 열기 - Process.Start()

HYOKYE0NG 2021. 10. 15. 10:13
반응형
 

[Blazor] 버튼 클릭할 경우 XML 파일 열기(4) - XML data 읽어와 browser에 뿌리기

[Blazor] 버튼 클릭할 경우 XML 파일 열기(3) - XML 파일 data 읽기 [Blazor] 버튼 클릭할 경우 XML 파일 열기(2) - 메모장으로 열기 [Blazor] 버튼 클릭할 경우 XML 파일 열기(1) 버튼을 클릭하면 어떤 경로에 있.

hyokye0ng.tistory.com

 

지난 포스팅들에서 xml 파일의 데이터를 읽어 console, browser에 뿌리는 것에 대해 알아보았다.

xml 데이터를 browser에 뿌리니 xml tag들이 접히고 열리는 collapse 기능이 없어

가독성이 떨어지고 불편함이 있었다.

 

그래서 이번 포스팅에서는 xml 파일을 chrome에서 바로 열어볼 것이다.

 

 

C#에서 외부 프로그램을 실행시키려면 Process.Start 메소드를 사용할 수 있다.

System.Diagnostics 클래스에 포함되어 있기 때문에 @using System.Diagnostics를 추가해준다.

@using System.Diagnostics

 

Process.Start를 사용하는 것에는 여러가지 방법이 있다.

 

가장 짧고 간단한 방법은 다음과 같다.

Process.Start(filename, argument)형식으로 사용하면 된다.

filename은 사용할 프로그램 이름이고, argument은 수행할 파일으로 이해할 수 있다.

Process.Start(@"C:\Program Files\Google\Chrome\Application\chrome.exe", "www.naver.com");

 

다음은 Process를 정의하여 StartInfo 속성을 설정한 후 실행하는 방법이다.

Process.StartInfo에는 다양한 속성을 설정할 수 있다.

아래의 문서에 잘 설명되어 있으니 필요하다면 참고하면 된다.

 

ProcessStartInfo 클래스 (System.Diagnostics)

프로세스를 시작할 때 사용되는 값 집합을 지정합니다.Specifies a set of values that are used when you start a process.

docs.microsoft.com

 

Arguments 속성에서 " --new-window" 를 추가해주면

url이 새로운 탭이 아닌 새로운 윈도우에서 실행된다.

Process process = new Process();

process.StartInfo.FileName = @"C:\Program Files\Google\Chrome\Application\chrome.exe";
process.StartInfo.Arguments = "www.naver.com" + " --new-window";
process.Start();

 

 

처음 말했 듯 나는 xml 파일을 chrome에서 여는 것이 목적이다.

우선 내 xml 파일의 이름은 dcn_no라는 변수에 담겨져 있고,

xml 파일의 경로는 xml_path 변수에 저장되어 있다.

 

btn_dcnno라는 버튼을 클릭하면 12345a라는 dcn_no를 가지고 XML_Load를 호출한다.

XML_Load에서는 dcn_no를 가지고 xml_path를 생성하고,

생성한 xml_path를 chrome으로 연다.

<button class="btn_dcnno" @onclick="(() => XML_Load("12345a"))">Load XML</button>

@code
{
	public string xmlrepositoryString { get; set; }
    
	private void XML_Load(string dcn_no)
    {
        xmlrepositoryString = SysinfoService.GetXMLRepository(); //xml의 folder path 가져옴
        string xml_path = @$"{xmlrepositoryString}\{dcn_no}.xml"; //folder path + file name

        try
        {
            Process.Start(@"C:\Program Files\Google\Chrome\Application\chrome.exe", xml_path + " -new--window");
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}

 

 

그럼 다음과 같이 xml파일이 chrome browser에서 열린 것을 볼 수 있다.

반응형
Comments