Tôi muốn lấy danh sách ổ đĩa di động trong C#. Tôi muốn bỏ qua các ổ đĩa cục bộ. Vì tôi muốn người dùng lưu tệp chỉ trong ổ đĩa di động.Làm cách nào để lấy danh sách ổ đĩa di động trong C#?
Trả lời
Bạn sẽ cần phải tham khảo System.IO
cho phương pháp này.
var driveList = DriveInfo.GetDrives();
foreach (DriveInfo drive in driveList)
{
if (drive .DriveType == DriveType.Removable)
{
//Add to RemovableDrive list or whatever activity you want
}
}
Hoặc cho các fan LINQ:
var driveList = DriveInfo.GetDrives().Where(d => d.DriveType == DriveType.Removable);
Added
Đối với phần tiết kiệm, như xa như tôi biết tôi không nghĩ rằng bạn có thể hạn chế nơi người dùng được phép lưu vào sử dụng một SaveFileDialog, nhưng bạn có thể hoàn thành một kiểm tra sau khi bạn đã hiển thị 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");
}
}
HOẶC
Lựa chọn tốt nhất là để tạo của riêng bạn Save Dialog, trong đó có một cái nhìn cây, chỉ hiển thị các ổ đĩa di động và nội dung của họ cho người sử dụng để lưu vào! Tôi muốn giới thiệu tùy chọn này.
Hope this helps
Bài viết này trông như làm các trick:
http://zayko.net/post/How-to-get-list-of-removable-drives-installed-on-a-computer-(C).aspx
H Rhys, Tôi mới vào iLists. Làm cách nào để thực thi mã trong liên kết mà bạn đã cung cấp, inorder để hiển thị hộp thoại với các ổ đĩa di động cho người dùng? Vui lòng trợ giúp. Khẩn cấp. – Anuya
Mã mẫu tại liên kết đó chỉ trả về danh sách các ổ đĩa di động. Để sử dụng tính năng này trong hộp thoại, có thể bạn sẽ cần tạo hộp thoại tùy chỉnh theo đề xuất của @ThePower. –
Liên kết trong bài đăng này đã chết. Chúng ta nên làm gì với câu trả lời? Tất cả câu trả lời là, là một liên kết đến một nguồn tài nguyên mà ngày nay (25-10-17) không tồn tại nữa. – Jura25
Làm thế nào về:
var removableDrives = from d in System.IO.DriveInfo.GetDrives()
where d.DriveType == DriveType.Removable;
Hoặc đồng nghĩa: var removableDrives = DriveInfo.GetDrives(). Trường hợp (d => d.DriveType == DriveType.Removable); –
Bạn cũng có thể sử dụng WMI để có được danh sách các ổ đĩa rời.
ManagementObjectCollection drives = new ManagementObjectSearcher (
"SELECT Caption, DeviceID FROM Win32_DiskDrive WHERE InterfaceType='USB'"
).Get();
Edited dựa trên nhận xét:
Sau khi bạn nhận được danh sách các ổ đĩa đạt được điều đó GUID và thêm chúng vào bộ sưu tập SaveFileDialogInstance.CustomPlaces.
Đoạn code dưới đây cần một số tinh chỉnh ...
System.Windows.Forms.SaveFileDialog dls = new System.Windows.Forms.SaveFileDialog();
dls.CustomPlaces.Clear();
dls.CustomPlaces.Add(AddGuidOfTheExternalDriveOneByOne);
....
....
dls.ShowDialog();
Điều gì xảy ra nếu đó là SD thay vì USB? Hoặc điều này sẽ phục vụ cho điều đó? – ThePower
- 1. Lấy danh sách các ổ đĩa logic
- 2. Ổ đĩa danh sách Haskell trong Windows
- 3. Làm thế nào tôi có thể lấy danh sách tất cả các ổ đĩa mà còn nhận được loại ổ tương ứng (ổ đĩa di động, đĩa cục bộ hoặc đĩa CD-rom, dvd-rom ... vv)?
- 4. Làm thế nào để phát hiện khi ổ đĩa di động được lắp bằng C#?
- 5. Làm cách nào để phát hiện xem ổ đĩa có thùng rác trong C#?
- 6. Làm cách nào để hủy kích hoạt ổ đĩa vật lý LVM2 để tháo ổ đĩa?
- 7. Lấy tên ổ đĩa (như trái ngược với ký tự ổ đĩa) trong Java
- 8. C# lấy danh sách từ một trường trong danh sách
- 9. Cách lấy thông tin ổ đĩa theo id âm lượng
- 10. Làm cách nào để phát hiện xem có đĩa mềm trong ổ đĩa?
- 11. Làm cách nào để nhận được số ổ đĩa cứng của ổ USB trên OS X?
- 12. Sử dụng C# để nhận danh sách ACL cho Máy chủ và ổ đĩa được ánh xạ
- 13. Định dạng ổ đĩa bằng C++
- 14. Làm cách nào để cắt ngắn danh sách trong C#?
- 15. Làm cách nào để di chuyển thư mục 'Đoạn mã của tôi' của Visual Studio sang một ổ đĩa khác?
- 16. cách lấy danh sách phụ từ danh sách trong ocaml
- 17. Phát hiện sự kiện gắn ổ đĩa trong C#
- 18. Đọc các Ổ đĩa cứng trong C++ trên Linux
- 19. Làm thế nào để có được mạng ổ đĩa kích thước trong C# (không có "ổ bản đồ")
- 20. Làm cách nào để phát hiện xem có ổ đĩa cụ thể nào là ổ cứng không?
- 21. LINQ: Làm cách nào để lấy các mục từ danh sách bên trong vào một danh sách?
- 22. C#: Tạo một ổ đĩa ảo trong Máy tính
- 23. Ổ đĩa máy chủ hoạt động như thế nào?
- 24. Liệt kê các ổ đĩa ngoài
- 25. Làm thế nào để bạn phát hiện các ký tự ổ đĩa cứng chính như ổ C:?
- 26. Tôi làm cách nào để truy cập ổ đĩa mạng được ánh xạ với System.IO.DirectoryInfo?
- 27. Cách di động để lấy kích thước tệp trong C/C++
- 28. Phát hiện xem đĩa có nằm trong ổ đĩa DVD
- 29. Làm cách nào để thay đổi ký tự ổ đĩa ở chế độ ido (Emacs)?
- 30. Lấy danh sách các PendingIntents đang hoạt động trong AlarmManager
Hi ThePower, Tôi muốn hiển thị các ổ đĩa di động khả dụng cho người dùng dưới dạng hộp thoại để lưu tệp. Hãy giúp tôi. – Anuya
@karthik Tôi nghĩ bạn sẽ phải tạo Hộp thoại Lưu tùy chỉnh của riêng mình, nó sẽ chỉ hiển thị các thư mục bạn nhận được từ Danh sách Ổ đĩa.Bạn có thể thử thiết lập saveFileDialog.InitialDirectory thành một trong các ổ đĩa di động, nhưng người dùng vẫn có thể quay lại ổ đĩa cứng. Nếu bạn có thời gian để tạo hộp thoại của riêng mình thì đó là lựa chọn tốt nhất , bằng cách sử dụng một TreeView để hiển thị RemovableDrives và nội dung của chúng, nhưng điều này sẽ tốn nhiều thời gian hơn bạn mong đợi để đạt được giải pháp này. – ThePower
Có lỗi trong truy vấn LINQ, nó phải là "Có thể tháo rời" thay vì "Có thể tháo rời" – Lonefish