我一直在试图弄清楚如何做这个很长一段时间,经过相当多的研究,我一直无法找到帮助我的东西。
这就是我需要的:我需要能够使用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'
答案 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替换为您自己的