【问题标题】:.NET: How to pass command-line parameters with a temp file name.NET:如何使用临时文件名传递命令行参数
【发布时间】:2010-09-16 03:29:48
【问题描述】:

这是 .NET 2.0 WinForms。我有一些这样的代码

string str = Path.GetTempFileName();
Process p = new Process();
ProcessStartInfo psi = new ProcessStartInfo();
psi.Arguments = str
psi.FileName = <some executable >
p.StartInfo = psi;
p.Start();

现在在“开始”过程中,我通过说args[0] 来获取临时文件名。在 Win XP 上,这会导致问题,因为临时文件位于 C:\Documents and Settings\... 中。 该空间引起了问题,因此args[0]C:\Documents

我该如何解决这个问题?我只需要将str 放在引号中吗?或者我可以让空格以某种方式被忽略吗?

【问题讨论】:

    标签: c# .net windows .net-2.0


    【解决方案1】:

    是的,使用引号。

    【讨论】:

    • 不仅如此,在这种情况下您应该始终使用引号,因为您永远不知道您可能会遇到什么路径。与许多其他路径一样,可以将临时文件位置自定义为任何位置。
    【解决方案2】:

    您可以将路径用双引号括起来,也可以使用本机 GetShortPathName 函数将路径转换为其短 (8.3) 表示形式。

    【讨论】:

      猜你喜欢
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 2016-02-22
      • 2023-03-25
      • 2019-05-21
      相关资源
      最近更新 更多