C#控制台应用程序未写入桌面

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

我对C#有些陌生,但对编码本身并不陌生。我目前正在尝试编写一个控制台应用程序来运行一些进程,从这些进程收集信息,然后将值写入.txt文件

我在Visual Studio 2017 RC中运行顺利,但当我发布并运行程序时,除了将值/数据发布到桌面上的文档的部分外,所有内容都会运行。有人能给我指出正确的方向,或者告诉我为什么它在视觉上工作,而不是在程序中

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)这将防止双反斜杠,或者可能在最终路径中没有分隔符。