C#에서 이동식 디스크의 목록을 가져오고 싶습니다. 로컬 드라이브를 건너 뛰고 싶습니다. 나는 사용자가 이동식 디스크에만 파일을 저장하기를 원하기 때문입니다.C#에서 이동식 디스크의 목록을 가져 오는 방법은 무엇입니까?
는답변
당신은이 방법에 대한 System.IO
를 참조해야합니다.
var driveList = DriveInfo.GetDrives();
foreach (DriveInfo drive in driveList)
{
if (drive .DriveType == DriveType.Removable)
{
//Add to RemovableDrive list or whatever activity you want
}
}
또는 LINQ 팬들을위한
:var driveList = DriveInfo.GetDrives().Where(d => d.DriveType == DriveType.Removable);
추가는 저장 부분에 관해서는
, 지금까지의 내가 아는 한 나는 당신이 어디에 제한 할 수 있다고 생각하지 않습니다 사용자는 SaveFileDialog를 사용하여 저장할 수 있지만 SaveFileDialog를 표시 한 후 검사를 완료 할 수 있습니다.
if(saveFileDialog.ShowDialog() == DialogResult.OK)
{
if (CheckFilePathIsOfRemovableDisk(saveFileDialog.FileName) == true)
{
//carry on with save
}
else
{
MessageBox.Show("Must save to Removable Disk, location was not valid");
}
}
또는
최선의 선택은 트리보기 만에 사용자 저장하기위한 이동식 드라이브와 그 내용을 보여주는이 들어 자신의 저장 대화 상자를 생성하는 것입니다! 이 옵션을 권하고 싶습니다.
희망이 있습니다
이 문서에서는 트릭을 보인다 :
http://zayko.net/post/How-to-get-list-of-removable-drives-installed-on-a-computer-(C).aspx
H의 Rhys, 나는 iLists 새로운 오전. 링크에서 코드를 실행하여 사용자에게 이동식 드라이브가있는 대화 상자를 표시하려면 inorder 명령을 내 보냈습니까? 도와주세요. 긴급한. – Anuya
해당 링크의 샘플 코드는 단순히 이동식 드라이브 목록을 반환합니다. 대화 상자에서이를 사용하려면 @ThePower가 제안한대로 사용자 정의 대화 상자를 만들어야합니다. –
이 게시물의 링크가 죽었습니다. 답으로 무엇을해야합니까? 모든 답은 오늘날 (25-10-17) 더 이상 존재하지 않는 자원에 대한 링크입니다. – Jura25
에 대해 어떻게 :
var removableDrives = from d in System.IO.DriveInfo.GetDrives()
where d.DriveType == DriveType.Removable;
또는 동의어 : var removableDrives = DriveInfo.GetDrives(). 여기서 (d => d.DriveType == DriveType.Removable); –
또한 WMI를 사용하여 이동식 드라이브 목록을 가져올 수 있습니다. 의견에 따라
ManagementObjectCollection drives = new ManagementObjectSearcher (
"SELECT Caption, DeviceID FROM Win32_DiskDrive WHERE InterfaceType='USB'"
).Get();
편집 :
당신이 드라이브의 목록을 얻을 후이 GUID의 취득 및 SaveFileDialogInstance.CustomPlaces 컬렉션에 추가합니다. 아래의 코드는 일부 조정이 필요
...
System.Windows.Forms.SaveFileDialog dls = new System.Windows.Forms.SaveFileDialog();
dls.CustomPlaces.Clear();
dls.CustomPlaces.Add(AddGuidOfTheExternalDriveOneByOne);
....
....
dls.ShowDialog();
USB가 아닌 SD라면 어떻게해야합니까? 아니면 이것에 만족할 것인가? – ThePower
Hi ThePower, 사용 가능한 이동식 드라이브를 대화 상자로 표시하여 파일을 저장하려고합니다. 도와주세요. – Anuya
@karthik 나는 당신이 자신 만의 맞춤 저장 대화 상자를 만들어야한다고 생각한다.이 대화 상자는 드라이브 목록에서 가져온 디렉토리 만 보여줄 것이다.saveFileDialog.InitialDirectory를 이동식 드라이브 중 하나로 설정해 볼 수도 있지만 사용자는 여전히 하드 드라이브 등으로 돌아갈 수 있습니다. 직접 대화 상자를 만들려면이 옵션이 가장 좋습니다 TreeView를 사용하여 RemovableDrives와 그 내용을 표시하지만이 방법은이 솔루션을 얻는 것보다 시간이 많이 걸릴 것입니다. – ThePower
linq 쿼리에 오류가 있습니다. "제거 가능"대신 "이동식"이어야합니다. – Lonefish