USB插入时的启动方法[C#]

时间:2016-02-18 07:49:44

标签: c# wpf usb usb-flash-drive

我制作了一个在usb闪存驱动器上写入txt文件的方法。目前,我通过绑定到按钮的RelayCommand启动该方法。但是我希望启动该方法evertime自动插入USB闪存驱动器。因此,此方法会自动将txt文件写入插入的闪存驱动器中。(方法GetDrives会回复插入的第一个驱动器的驱动器号)。有谁知道如何实现这一点?

public void WriteFileOnFDrive()
        {
            var firstDrive = GetDrives().FirstOrDefault();
            if (!string.IsNullOrEmpty(firstDrive))
            {
                string myText = "TestText";
                string path = firstDrive + @"SomeText.txt";
                if (File.Exists(path))
                {
                    Console.WriteLine("SomeText already exists!");
                }
                else
                {
                    System.IO.File.WriteAllText(path, myText);
                    File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.Hidden | FileAttributes.ReadOnly | FileAttributes.System);
                }
            }
        }

编辑:我不需要已经插入的驱动器。当插入新的USB闪存驱动器时,我需要触发我的方法。

1 个答案:

答案 0 :(得分:2)

您可以使用ManagementEventWatcher。
微软上有一篇名为How to detect a removable disk的文章很好地解释了它。我在生产代码中几乎按原样使用文章中的代码,它适用于Win7,Win8和Win10。