Итак, прежде чем люди начнут кричать «DUPLICATE!» позволь мне объяснить. Я провел последние несколько дней, пытаясь получить код C#, чтобы безопасно извлечь USB-ключ. Я пытаюсь использовать код здесь:Безопасное извлечение/размонтирование файловой системы usb на Windows 8.1 64-бит с C#
http://www.codeproject.com/Articles/13530/Eject-USB-disks-using-C
Который является единственным результатом реального кода, Google возвращает, и единственная статью, что я вижу другие люди, связывая слишком (на этом сайте и подобных) , говоря: «Эй, почему ты не попробовал сначала Google?».
Ну, я сделал, и этот код сломан многими способами. Я изменил цель компиляции для моего проекта на x86 и сделал несколько предлагаемых изменений в комментариях, и, по крайней мере, он будет работать без особых исключений. Однако все буквы дисков перечислены неправильно. Он успешно удалит мой ключ usb с меткой тома F: если я просто запустил метод «Извлечь» на каждый том, который он сообщает, но когда он выталкивает F: «подумайте, что он выталкивает том C: (в соответствии с свойством, хранящимся в этом объект устройства).
Возможно, связанная с этим проблема заключается в том, что она не правильно определяет, какие диски являются съемными. Метод IsUsb возвращает true для C: и D: два раздела на моем SSD ноутбука и false для cd-диска E: и F :, my (daemontools) и фактического ключа usb.
Я провел последние 3 дня, пробирая код самостоятельно и искал в Интернете исправления (другие люди также сообщили об этой проблеме), но если люди поняли это, они не разместили свои решения. Я разработчик * nix, создающий временный набег на этот мир, и у меня нет опыта, чтобы действительно сделать это намного дороже моего времени.
Я надеялся исправить это и просто опубликовать ответ, но мое время и терпение заканчиваются, и если я не буду выяснять это до конца дня завтра, я просто собираюсь выложить утилита командной строки с допустимой лицензией. Это было бы грубо, и я ненавижу признание поражения.
Таким образом, на благо всех, кто приходит за мной, может кто-нибудь помочь мне исправить этот код и опубликовать его там, где все могут его найти? Я был бы рад дать более подробную информацию о том, что я сделал до сих пор.
http://www.codeproject.com/kb/system/RemoveDriveByLetter.aspx Вопросы, предлагающие нам отправиться в другое место, загрузить некоторый код, заставить его работать, а затем опубликовать его для вас здесь не уместно. Если вы хотите получить помощь с этим кодом, обратитесь к автору этого кода. –
Я надеялся, что кто-то еще был знаком с этим кодом и исправил его, поскольку это единственный код, на который здесь указывают, как ответ на этот вопрос. Я не ожидаю случайных людей просто пойти и исправить. – mthiffau
И, кроме того, мне, вероятно, потребуется столько времени, чтобы сидеть и переносить его с C++ на C# (и отлаживать его и т. Д.), Так как он просто выяснял, что случилось с библиотекой, с которой я связан. – mthiffau