判断 WPF 软件是否在 U 盘上运行可以通过以下几个步骤实现:
- 获取当前运行 .exe 文件的路径;
- 获取当前运行 .exe 文件所在的磁盘盘符;
- 获取所有磁盘的驱动器信息;
- 判断当前运行的 .exe 文件是否在 U 盘中。
以下是实现判断 WPF 软件是否在 U 盘上运行的方法:
private static bool IsRunningOnUSB()
{
// 1. 获取当前运行 .exe 文件的路径
string exePath = System.Reflection.Assembly.GetEntryAssembly().Location;
// 2. 获取当前运行 .exe 文件所在的磁盘盘符
string drive = Path.GetPathRoot(exePath);
// 3. 获取所有磁盘的驱动器信息
DriveInfo[] drives = DriveInfo.GetDrives();
// 4. 判断当前运行的 .exe 文件是否在 U 盘中
foreach (DriveInfo driveInfo in drives)
{
if (driveInfo.DriveType == DriveType.Removable && driveInfo.Name.Equals(drive, StringComparison.OrdinalIgnoreCase))
{
return true;
}
}
return false;
}
其中, DriveInfo.GetDrives()
方法可以获取磁盘信息。判断当前运行的 .exe 文件是否在 U 盘中,则需要遍历所有磁盘的驱动器信息,判断当前的盘符是否与当前运行的 .exe 文件所在磁盘盘符相同以及该磁盘是否是可移动磁盘类型,如果是则表示软件运行在 U 盘中。