C#引用桌面

9 c#

我正在使用文件流写出文件.

我希望能够将文件写入桌面.

如果我有类似的东西

tw = new StreamWriter("NameOflog file.txt");
Run Code Online (Sandbox Code Playgroud)

我希望能够在文件名前面找到某种可以自动插入桌面路径的@desktop.这是否存在于C#中?或者我是否必须通过计算机(OS OS)来查看计算机上的桌面是什么.

sch*_*der 35

快速谷歌搜索揭示了这一个:

string strPath = Environment.GetFolderPath(
                         System.Environment.SpecialFolder.DesktopDirectory);
Run Code Online (Sandbox Code Playgroud)

编辑:这适用于Windows,但Mono也支持它.

  • 不要手动添加\\.请改用Path.Combine. (11认同)
  • 而且您不需要在字符串上调用ToString() (4认同)

Jon*_*eet 10

你想使用Environment.GetFolderPath,传入SpecialFolder.DesktopDirectory.

还有SpecialFolder.Desktop代表逻辑桌面位置的东西 - 虽然不清楚两者之间的差异.

  • 神圣的牛,Jon Skeet被打败了.乔恩,你不会失去对我们的优势,你是伙伴吗?:) (3认同)
  • 来吧Jon,你应该把这些东西记下来吧:) (2认同)
  • 差异可能与通过组策略的文件夹重定向有关.也许SpecialFolder.Desktop指的是文件夹的实际位置,而不是硬盘上的正常路径 (2认同)

Mar*_*ell 7

就像是:

    string logPath = Path.Combine(
        Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
        "NameOflog file.txt");
    tw = new StreamWriter(logPath);
Run Code Online (Sandbox Code Playgroud)