[C#] Get Available Fixed Drive

2016. 6. 14. 14:33Coders

로컬 PC에서 OS 가 설치되어 있지 않은 드라이브 루트를 얻는 메서드 입니다.

뭔가 하면서 넣었다가 필요 없게 되었는데, 몇 줄 안 되는 코딩이지만 아까워서 남겨 둡니다.

  1. 로직은 다음과 같습니다.
  2. 시스템에서 드라이브 목록을 다 얻는다.
  3. 드라이브 목록 중 Fixed만 뽑아 낸다.
  4. Fixed 드라이브의 갯수가 1개 이면, 그냥 그 드라이브 루트 리턴.
  5. Fixed 드라이브 갯수가 2개 이상이면, 시스템 드라이브가 아닌 드라이브를 찾아서 리턴.

참고로. 테스트 해 보진 않았습니다. (이게 중요!!)

/// <summary>
/// 고정 드라이브 중, Fixed 인 것을 얻는다.
/// </summary>
/// <returns></returns>
public static string GetAvailabeDrive()
{
	//고정 드라이브 중, Fixed 인 것.
	DriveInfo[] drives = DriveInfo.GetDrives();
	List<DriveInfo> fixedDrives = new List<DriveInfo>();

	foreach (DriveInfo drive in drives)
	{
		if (drive.DriveType == DriveType.Fixed)
			fixedDrives.Add(drive);
	}

	DriveInfo driveSelected = fixedDrives[0];

	if (fixedDrives.Count > 1)
	{
		foreach (DriveInfo drive in drives)
		{
			if (drive.Name != Path.GetPathRoot(Environment.SystemDirectory))
			{
				driveSelected = drive;
				break;
			}
		}
	}

	return driveSelected.Name;
}


'Coders' 카테고리의 다른 글

[C#] Get Project Resource by Name  (0) 2016.06.24
[CSS] 맑은고딕 폰트 Weight 문제  (0) 2016.06.02
jqGrid Double Click Cell Edit  (0) 2016.05.25