2009-06-06 6 views

답변

8

Application.StartupPath 속성을 사용하여 exe가 시작된 경로를 가져옵니다. 그런 다음 새 DriveInfo (driveletter_from_path) .DriveType을 사용하여 CD 또는 하드 디스크인지 확인하십시오.

+3

시작 경로가 아닌 실행 경로를 원할 수 있습니다 (프로그램 위치와 상관없이 가능). – Zifre

+1

DriveInfo 클래스에 대한 좋은 정보. http://msdn.microsoft.com/en-us/library/system.io.driveinfo.aspx –

3

실행 경로를 확인하고 CD/DVD 드라이브에 있는지 확인해야합니다.

+1

경로가 CD/DVD 드라이브에 있는지 어떻게 알 수 있습니까? –

8

당신은 그런 일 할 수있는 : 그냥, 왜 당신이 그것을하고있는 나는 완전히 확실하지 않다

string location = Assembly.GetExecutingAssembly().Location; 
DriveInfo info = new DriveInfo(Path.GetPathRoot(location)); 
if (info.DriveType == DriveType.CDRom) 
{ 
    Console.WriteLine("Started from CD-ROM"); 
} 

MSDN: description of the drive types.

4

codemanix의 대답에 확장을 복사 방지를 시도하는 경우 MS-DOS에서 오래된 (고대) subst을 기억하십시오.

그냥 당신이 알고 싶어 왜 궁금 ... 사용 Application.ExecutablePath 및 DriveInfo를 위조 될 수 있다는 것을 염두에

1

하지만 :

 FileInfo file = new FileInfo(Process.GetCurrentProcess().MainModule.FileName); 
     DriveInfo drive = new DriveInfo(file.Directory.Root.ToString()); 
     switch (drive.DriveType) 
     { 
      case DriveType.CDRom: 
       MessageBox.Show("Started from CD/DVD"); 
       break; 
      case DriveType.Network: 
       MessageBox.Show("Started from network"); 
       break; 
      case DriveType.Removable: 
       MessageBox.Show("Started from removable drive"); 
       break; 
      default: 
       break; 
     } 
관련 문제