在C#中最简单的方法来确定应用程序是否从网络驱动器运行?

Dor*_*oby 18 .net c# network-drive

我想以编程方式查明我的应用程序是否从网络驱动器运行.这样做最简单的方法是什么?它应该支持UNC路径(\\127.0.0.1\d$)和映射的网络驱动器(Z :).

dot*_*tep 21

这适用于映射驱动器的情况.您可以使用DriveInfo该类来确定驱动器a是否是网络驱动器.

DriveInfo info = new DriveInfo("Z");
if (info.DriveType == DriveType.Network)
{
    // Running from network
}
Run Code Online (Sandbox Code Playgroud)

完整方法和示例代码.

public static bool IsRunningFromNetwork(string rootPath)
{
    try
    {
        System.IO.DriveInfo info = new DriveInfo(rootPath);
        if (info.DriveType == DriveType.Network)
        {
            return true;
        }
        return false;
    }
    catch
    {
        try
        {
            Uri uri = new Uri(rootPath);
            return uri.IsUnc;
        }
        catch
        {
            return false;
        }
    }
}

static void Main(string[] args) 
{
    Console.WriteLine(IsRunningFromNetwork(System.IO.Path.GetPathRoot(AppDomain.CurrentDomain.BaseDirectory)));    }
Run Code Online (Sandbox Code Playgroud)