代码之家  ›  专栏  ›  技术社区  ›  Nestor

如何从c#查找“共享文档”文件夹的路径?

  •  2
  • Nestor  · 技术社区  · 16 年前

    在Windows Vista中,特殊文件夹“共享文档”包含计算机中所有用户均可访问的文档。在Windows7中,该文件夹被重命名为“公共文档”。

    如何从c#找到它的物理路径?

    Environment.GetFolderPath(Environment.SpecialFolder.xxx) 没有我要找的文件夹。

    5 回复  |  直到 16 年前
        1
  •  3
  •   Chris Fulstow    16 年前
    Path.Combine(Environment.GetEnvironmentVariable("PUBLIC"), "Documents");
    
        2
  •  9
  •   LukeH    16 年前

    这个 SpecialFolder enum在.NET4中有一个大的、早就应该更新的更新—其中一个新添加是 CommonDocuments 成员。

        3
  •  5
  •   Graviton    16 年前

    [DllImport("shell32.dll")]
    static extern int SHGetFolderPath(IntPtr hwndOwner, int nFolder, IntPtr hToken,
       uint dwFlags, [Out] StringBuilder pszPath);
    
    public string GetCommonDocumentsFolder()
    {
        int SIDL_COMMON_DOCUMENTS = 0x002e;
        StringBuilder sb = new StringBuilder();
        SHGetFolderPath(IntPtr.Zero,SIDL_COMMON_DOCUMENTS,IntPtr.Zero,0x0000,sb);
        return SB.ToString();
    }
    

    expert-exchange 我们都爱恨。

        4
  •  1
  •   ulmer-morozov    12 年前
    Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments);
    

    包含所有用户通用文档的文件系统目录。此特殊文件夹对安装了Shfolder.dll的Windows NT系统、Windows 95和Windows 98系统有效。

        5
  •  0
  •   Angus Connell    16 年前

    在ShlObj.h中查找更多CSIDL 有趣的是,SHGetFolderPath已经被去除了润滑油。。。 http://msdn.microsoft.com/en-us/library/bb762181(VS.85).aspx