繁体   English   中英

C# 使用 Subst 命令创建虚拟磁盘

[英]C# Create virtual disk with Subst command

我需要创建一个带有字母 P(或其他字母)的目录,这样它就像驱动器 C 或 D。在尝试了不同的方法之后,我得出的结论是最好在 Subst 的帮助下完成此操作。 但是如何在 C# 中做到这一点。 我正在使用的代码不起作用。 作为管理员,也不起作用。

`

string diskLetter = "P:"; // <---
string path = @"D:\folder path";
 
Process.Start(new ProcessStartInfo
{
    FileName = "subst",
    Arguments = $"{diskLetter} \"{path}\"",
    Verb = "runas",
    UseShellExecute = true
});

`

要在 C# 中使用 subst 命令,可以使用 Process 类启动一个新进程并运行该命令。 以下是如何执行此操作的示例:

using System.Diagnostics;
// ...
string driveLetter = "P";
string path = "C:\\my\\folder\\path";

Process process = new Process();
process.StartInfo.FileName = "subst";
process.StartInfo.Arguments = $"{driveLetter}: {path}";
process.Start();

这将创建一个带有字母 P 的虚拟驱动器,该驱动器映射到指定路径的文件夹。

请注意,您需要具有管理权限才能使用 subst 创建虚拟驱动器。 如果代码不工作,可能是因为进程没有以必要的权限启动。 要以管理权限启动进程,可以将 StartInfo 对象的 Verb 属性设置为“runas”:

process.StartInfo.Verb = "runas";

首先,我建议您使用 CliWrap 库,这将改进您在 .NET 中使用 cli 的工作。

我认为,您应该查看此问题以了解如何在 .NET 中使用 cli (cmd) 包装。

因此,让我们尝试重新回答这个问题以帮助您。

不要忘记subst是需要管理员权限的命令,所以。

string driveLetter = "P";
string path = "C:\\my\\folder\\path";

Process process = new System.Diagnostics.Process();
ProcessStartInfo startInfo = new ProcessStartInfo();

startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = $"/C copy subst {driveLetter}: {path}";
startInfo.Verb = "runas";

process.StartInfo = startInfo;
process.Start();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM