C#控制台应用程序未写入桌面
我对C#有些陌生,但对编码本身并不陌生。我目前正在尝试编写一个控制台应用程序来运行一些进程,从这些进程收集信息,然后将值写入.txt文件 我在Visual Studio 2017 RC中运行顺利,但当我发布并运行程序时,除了将值/数据发布到桌面上的文档的部分外,所有内容都会运行。有人能给我指出正确的方向,或者告诉我为什么它在视觉上工作,而不是在程序中C#控制台应用程序未写入桌面,c#,visual-studio,environment-variables,C#,Visual Studio,Environment Variables,我对C#有些陌生,但对编码本身并不陌生。我目前正在尝试编写一个控制台应用程序来运行一些进程,从这些进程收集信息,然后将值写入.txt文件 我在Visual Studio 2017 RC中运行顺利,但当我发布并运行程序时,除了将值/数据发布到桌面上的文档的部分外,所有内容都会运行。有人能给我指出正确的方向,或者告诉我为什么它在视觉上工作,而不是在程序中 public static bool WriteData(string DataNeeded) { string Root
public static bool WriteData(string DataNeeded)
{
string Root = @"\text.txt";
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + Root;
if (!File.Exists(path))
{
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine("Header of TXT file");
sw.WriteLine("Document created: " + DateTime.Now);
}
}
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine("Data being written to text file: " + DataNeeded+ " " + DateTime.Now);
}
return true;
}
我不敢相信解决办法竟如此简单。我使用的是逻辑桌面空间引用,而不是文件系统位置
string Root = @"\text.txt";
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + Root;
上述SpecialFolder.Desktop应为:
string Root = @"\text.txt";
string path = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + Root;
我不敢相信解决办法竟如此简单。我使用的是逻辑桌面空间引用,而不是文件系统位置
string Root = @"\text.txt";
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + Root;
上述SpecialFolder.Desktop应为:
string Root = @"\text.txt";
string path = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + Root;
文档根本就没有被创建吗?程序以什么用户的身份运行?它是否抛出任何错误或程序是否崩溃?最好的办法是它与访问有关,它会在桌面上创建text.txt吗?“我发布并运行”--你是按计划任务运行的吗?我相信您必须用多一点权限来设置它。@D Stanley程序不会崩溃或抛出任何错误,并且在visual studio中创建了文本文件,但在程序作为包发布时不会@ALI Baig程序将以任何用户运行的方式运行。@TyCobb目前我没有使用任务计划程序来运行此程序。将来可能会,但现在这是一个双击运行的过程。文档根本没有被创建吗?程序以什么用户的身份运行?它是否抛出任何错误或程序是否崩溃?最好的办法是它与访问有关,它会在桌面上创建text.txt吗?“我发布并运行”--你是按计划任务运行的吗?我相信您必须用多一点权限来设置它。@D Stanley程序不会崩溃或抛出任何错误,并且在visual studio中创建了文本文件,但在程序作为包发布时不会@ALI Baig程序将以任何用户运行的方式运行。@TyCobb目前我没有使用任务计划程序来运行此程序。将来可能但现在这是一个双击运行的过程。一般来说,在构建路径时使用
string path=path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory),Root)代码>这将防止在最终路径中出现双反斜杠,或者可能没有分隔符。一般经验法则是,在构建路径时使用string path=path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory),Root)代码>这将防止双反斜杠,或者可能在最终路径中没有分隔符。