我想以编程方式确定我的应用程序是否从网络驱动器运行。做这件事最简单的方法是什么?它应该同时支持UNC路径(\\127.0.0.1\d$
)和映射网络驱动器(Z:)。
发布于 2011-12-26 15:11:59
这适用于映射驱动器的情况。您可以使用DriveInfo
类来确定驱动器a是否是网络驱动器。
DriveInfo info = new DriveInfo("Z");
if (info.DriveType == DriveType.Network)
{
// Running from network
}
完整的方法和示例代码。
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))); }
发布于 2011-12-26 15:17:49
if (new DriveInfo(Application.StartupPath).DriveType == DriveType.Network)
{
// here
}
发布于 2011-12-26 15:17:37
这是我目前的方法,但我觉得应该有更好的方法。
private bool IsRunningFromNetworkDrive()
{
var dir = AppDomain.CurrentDomain.BaseDirectory;
var driveLetter = dir.First();
if (!Char.IsLetter(driveLetter))
return true;
if (new DriveInfo(driveLetter.ToString()).DriveType == DriveType.Network)
return true;
return false;
}
https://stackoverflow.com/questions/8633680
复制相似问题