【发布时间】:2016-09-27 07:32:27
【问题描述】:
所以基本上,我有一个从用户在文本框中输入开始的过程。 但是该过程中的一个参数包含用户拥有但已重命名的文件夹。只有在它被重命名后,它才会开始这个过程。所以我得到了。
private void button2_Click_1(object sender, EventArgs e)
{
if (File.Exists(@"{0}\@JonzieMegaModPack"))
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = textBox1.Text;
startInfo.Arguments =
string.Format(@"-window -useBE {1} -mod={0}\@CBA_A3", textBox2.Text, textBox3);
Process.Start(startInfo);
}
else
{
Directory.Move(@"{0}\@Jonzie Mega Mod Pack", @"{0}\@JonzieMegaModPack", textBox2.Text);
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = textBox1.Text;
startInfo.Arguments =
string.Format(@"-window -useBE {1} -mod={0}\@CBA_A3", textBox2.Text, textBox3);
Process.Start(startInfo);
}
}
但是在else 部分,带有Directory.Move
我收到错误消息:方法 'Move' 没有重载需要 3 个参数。
我猜是因为 {0} 结束时的逗号。
【问题讨论】:
-
嗯,是的,
Directory.Move没有重载三个参数。你期望那个电话会做什么?您希望它如何使用所有三个参数?也许你的意思是打电话给string.Format? (看起来很可能,因为我怀疑您实际上有一个名为{0}的目录。) -
{0}用于string.Format()。也许你的代码中缺少它。 -
{0} 是目录的开头。对我来说,它的 e:\Aaron\Addons 然后继续 {0} 后面的内容。那么 , textbox2.text 应该会导致 {0} 不应该吗?
-
@AaronKek:不,绝对不是。您不能只在这样的任意方法调用中使用字符串格式。像
Console.WriteLine这样的方法显式地 支持字符串格式——它不仅仅是在每次调用中都隐含。