如何从savefiledialog获取完整路径并在"startInfo.Arguments"中使用?

use*_*054 6 c# winforms

在我的情况下,SaveFileDialog不会写任何文件,但我想用来指定命令行应用程序的路径,该应用程序将在与sf对话框中的"已保存"相同的位置创建日志文件.

SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "*.txt";
string sfdname = saveFileDialog1.FileName;
if (sfd.ShowDialog() == DialogResult.OK)
{
  Path.GetFileName(sfd.FileName);
}

startInfo.Arguments = "--log=" + Path.GetFileName(sfd.FileName);
Run Code Online (Sandbox Code Playgroud)

Wan*_*pez 12

您可以使用

Path.GetFullPath(sfd.FileName);
Run Code Online (Sandbox Code Playgroud)

代替

Path.GetFileName(sfd.FileName);
Run Code Online (Sandbox Code Playgroud)

完整版......

SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "*.txt";
string sfdname = saveFileDialog1.FileName;
if (sfd.ShowDialog() == DialogResult.OK)
{
  Path.GetFullPath(sfd.FileName);
}

startInfo.Arguments = "--log=" + Path.GetFullPath(sfd.FileName);
Run Code Online (Sandbox Code Playgroud)


Dan*_*rth 5

只需删除Path.GetFileName:

startInfo.Arguments = "--log=\"" + sfd.FileName + "\"";
Run Code Online (Sandbox Code Playgroud)