将String.Format与局部变量C#一起使用

时间:2016-04-01 22:08:51

标签: c#

我一直在试图弄清楚如何做这个很长一段时间,经过相当多的研究,我一直无法找到帮助我的东西。 这就是我需要的:我需要能够使用String.Format{0}{1}等)以及本地变量。

string[] lines = { "Never gonna give you up", "Never gonna let you down"};
System.IO.File.WriteAllLines(@"C:\Users\{0}\Desktop\testttt.txt", lines);

System.IO.File.WriteAllLines()我需要能够用某些内容替换{0}。 (使用Environment.UserName

的用户文件路径

我没有成功这样做并返回错误

  

无法转换为' string'到' System.Text.Encoding'

2 个答案:

答案 0 :(得分:1)

嗯,首先,这不是获取桌面目录路径的方法。相反,只需这样做:

Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)

与您的解决方案不同,这将适用于文件夹重定向,远程配置文件以及未来(和过去!)Windows版本。更不用说Environment.Username不一定是正确的文件夹名称:)

其次,

var subdir = "SomeDir";
File.WriteAllLines(string.Format(@"C:\SomeParent\{0}\MyFile.txt", subdir), lines);

您需要实际调用 string.Format方法。如果您只是为File.WriteAllLines本身添加另一个参数......那么,它会如何工作?您是否也在编写所有方法来接受带有可变数量参数的formattable字符串?

有点神秘的错误消息只是试图告诉你没有适合你的参数的方法重载 - 它可以得到最接近显示错误的结果。

答案 1 :(得分:-1)

String[] lines = { "Never gonna give you up", "Never gonna let you down"};
System.IO.File.WriteAllLines(string.format(@"C:\Users\{0}\Desktop\testttt.txt", yourVariable) , lines);

将yourVariable替换为您自己的