C# 在使用DirectoryInfo时,用另一种方法将路径加引号?

C# 在使用DirectoryInfo时,用另一种方法将路径加引号?,c#,registry,quotes,directoryinfo,C#,Registry,Quotes,Directoryinfo,我目前正在使用reg.exe,我正在创建一个进程,其中reg.exe作为process.FileName 当我尝试执行reg.exe时,如下所示 REG EXPORT HKLM\\SOFTWARE\\Intel\\IntelAMTUNS D:\\Backups\\Test.reg 一切都很好 但一旦我试着这样执行它 REG EXPORT HKLM\\SOFTWARE\\Intel\\IntelAMTUNS D:\\Backups\\Backup folder 1\\Test.reg Dir

我目前正在使用
reg.exe
,我正在创建一个进程,其中
reg.exe
作为
process.FileName

当我尝试执行reg.exe时,如下所示

REG EXPORT HKLM\\SOFTWARE\\Intel\\IntelAMTUNS D:\\Backups\\Test.reg
一切都很好

但一旦我试着这样执行它

REG EXPORT HKLM\\SOFTWARE\\Intel\\IntelAMTUNS D:\\Backups\\Backup folder 1\\Test.reg 
DirectoryInfo backupPath = new DirectoryInfo("\"D:\\Backups\\Backup folder 1\\Test.reg\"");

Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();

startInfo.FileName = "reg.exe";
startInfo.CreateNoWindow = true;
startInfo.Arguments = "REG EXPORT HKLM\\SOFTWARE\\Intel\\IntelAMTUNS " + backupPath.FullName;

process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
什么也没发生——我知道为什么!目标路径未加引号。一旦我这么做,一切又恢复正常了

我现在的问题是,我将所有文件和文件夹路径作为
DirectoryInfo
的实例处理。当我以字符串形式传递带有引号的路径时,例如

DirectoryInfo targetFolder = new DirectoryInfo("\"D:\\Backups\\Backup folder 1\\Test.reg\"")
我立即收到一个异常,告诉我给定路径的格式不受支持

是否有任何方法可以将路径放在引号中,并且仍然使用DirecotryInfo? 我真的需要把我的路径用引号括起来,否则这个命令就不起作用了

下面是一些示例代码:

DirectoryInfo backupPath = new DirectoryInfo("D:\\Backups\\Backup folder 1\\Test.reg");

Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();

startInfo.FileName = "reg.exe";
startInfo.CreateNoWindow = true;
startInfo.Arguments = "REG EXPORT HKLM\\SOFTWARE\\Intel\\IntelAMTUNS " + backupPath.FullName;

process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
当我运行这段代码时,不会发生任何事情,也不会出现错误或异常。.reg文件本身也没有创建

当我试着这样运行它的时候

REG EXPORT HKLM\\SOFTWARE\\Intel\\IntelAMTUNS D:\\Backups\\Backup folder 1\\Test.reg 
DirectoryInfo backupPath = new DirectoryInfo("\"D:\\Backups\\Backup folder 1\\Test.reg\"");

Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();

startInfo.FileName = "reg.exe";
startInfo.CreateNoWindow = true;
startInfo.Arguments = "REG EXPORT HKLM\\SOFTWARE\\Intel\\IntelAMTUNS " + backupPath.FullName;

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

我得到了一个
系统。NotSupportedException告诉我“给定路径的格式不受支持”。但我实际上需要将路径放在引号中-否则命令本身将无法工作…

您在错误的位置添加引号:
DirectoryInfo
的构造函数无论如何都会将它们去掉以规范化路径,因此,您可以跳过添加它们:

var backupPath = new DirectoryInfo("D:\\Backups\\Backup folder 1\\Test.reg");
backupPath.FullName
添加到参数时,可以强制在路径周围加引号,如下所示:

startInfo.Arguments = "REG EXPORT HKLM\SOFTWARE\Intel\IntelAMTUNS \"" + backupPath.FullName + "\"";

路径中是否缺少结束引号?已编辑并添加了结束引号!