如何检测应用程序是否从DVD运行?

Ama*_*ein 2 c# system.reflection driveinfo

我正在尝试检测我们的应用程序是否从DVD运行(因为这会禁用/启用逻辑中的功能).到目前为止,我已经提出了下面的代码片段似乎可行,但我真的想知道是否有最佳实践来检测这一点.

    public static bool IsDVDInstallation()
    {
        try
        {
            string location = Assembly.GetExecutingAssembly().Location;
            var info = new DriveInfo(Path.GetPathRoot(location));
            return info.DriveType == DriveType.CDRom;
        }
        catch
        {
            return false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

Ada*_*son 7

如果你想知道应用程序(而不是你所在的任何特定组件)是否在光驱上运行,那么你可能应该使用GetEntryAssembly()而不是GetExecutingAssembly().除此之外,你的逻辑看起来非常合理.

为什么沉默catch块?你以前尝试过这个时有异常吗?即使你这样做了,你也应该捕获你知道如何处理而不是一切的特定异常.