참조에 COM객체 “Windows Script Host Object Model”(1.0) 추가

 

   1: string fileName = @"Temp.lnk";
   2: string fileExt = Path.GetExtension(fileName);
   3: if (fileExt.Trim().ToLower() == ".lnk")
   4: {
   5:     IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShell();
   6:     IWshRuntimeLibrary.IWshShortcut link = (IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(fileName);
   7:     fileName = link.TargetPath;
   8: }

출처 : 모름

 

C#에서 현재 경로를 알아내는 방법은 여러가지가 있다.

1. System.Environment.CurrentDirectory

가장 쉽게 현재 실행 경로를 알아낼 수 있는 방법이다. 하지만 이 방법은 Register에 등록된 프로그램으로 실행되면 다른 값을 출력한다. 이때는 3번 Application.StartupPath를 이용해야 한다.

* 루트일 경우에는 ‘\’ 반환, 그 외의 경우에는 폴더명까지만 반환한다.

  • C:\
  • C:\TestFolder\MyApp


2. System.IO.Directory.GetCurrentDirectory()


1번과 동일하다.


3. Application.StartupPath

위의 Register에 등록되었을 때도 정상적으로 자신의 시작 경로를 반환한다. 하지만 이는 Window Forms를 사용할 때만 Application 클래스를 사용할 수 있기 때문에 Console 기반 혹은, 클래스 라이브러리 기반에서는 사용이 불가능하다.

Tip. Application.ExecutablePath
현재 실행된 어플리케이션의 실행 파일의 위치이다. C:\Test\App.exe 와 같이 출력된다. 이 정보는 현재 경로가 아니기 때문에 변경되지 않는다.

 

 출처 : http://pureholic.net/2010/04/how-to-kwow-startpath-in-csharp/

이 글은 스프링노트에서 작성되었습니다.

+ Recent posts