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

时间:2017-01-20 21:35:19

标签: c# visual-studio environment-variables

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

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

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;
    }

1 个答案:

答案 0 :(得分:3)

我不相信解决方案很简单。我使用的是逻辑桌面空间参考,而不是使用文件系统位置

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;