• Windows 的公共文件夹


    在 Windows 中,存放软件运行后产生的数据主要有两个地方,一个是 C:ProgramData 文件夹,一个是 C:UsersAdministratorAppData 文件夹。

    ProgramData

    一般来讲,ProgramData 存储一些公共文件,以供所有用户使用。但是 Windows 的多用户功能几乎完全没有接触过。。。

    Environment.SpecialFolder.CommonApplicationData
    

    AppData(Application Data Folders)

    如果应用程序要为每个用户建立单独的文件夹,就应该使用 AppData 文件夹。AppData 文件夹下有三个子文件夹:

    AppData/Local

    用作当前非漫游用户使用的应用程序特定数据的公共储存库的目录。非漫游是指这些文件由于特定于 PC 或者太大等,不应随用户配置文件进行同步或者移动。

    Environment.SpecialFolder.LocalApplicationData

    其中 AppDataLocalTemp 存储了一些临时文件,可以删除。

     要获取 Temp 的路径,有两种方法:

    System.IO.Path.GetTempPath();
    
    Environment.GetEnvironmentVariable("TEMP");
    

    AppData/LocalLow

    LocalLow 也是包含了无法同步的数据,不够这些数据具有较低的访问级别。如果用户以安全模式运行程序,该程序将只能访问 LocalLow 文件夹的数据。

    在 C# 中没有直接的访问 LocalLow 文件夹的方式,要获取该文件夹的路径,可以用 Local 的路径拼接,或者使用 shell32 中的 SHGetKnownFolderPath 方法:

    void LocalLow()
    {
        string locallowPath;
        Guid localLowId = new Guid("A520A1A4-1780-4FF6-BD18-167343C5AF16");
        IntPtr pszPath = IntPtr.Zero;
        try
        {
            int hr = SHGetKnownFolderPath(localLowId, 0, IntPtr.Zero, out pszPath);
            if (hr >= 0)
                locallowPath = Marshal.PtrToStringAuto(pszPath);
            throw Marshal.GetExceptionForHR(hr);
        }
        finally
        {
            if (pszPath != IntPtr.Zero)
                Marshal.FreeCoTaskMem(pszPath);
        }
    }
    
    [DllImport("shell32.dll")]
    static extern int SHGetKnownFolderPath([MarshalAs(UnmanagedType.LPStruct)] Guid rfid, uint dwFlags, IntPtr hToken, out IntPtr pszPath);
    View Code

    AppData/Roaming

    Roaming 就是“漫游”的意思,这个文件夹是用作当前漫游用户的应用程序特定数据的公共储存库的目录。既可以存储配置文件等可以进行同步或移动的数据。

    Environment.SpecialFolder.ApplicationData
  • 相关阅读:
    git 仓库过大,clone不下来的解决办法
    vue项目使用elementUI pagination 实现前端分页
    Element中 Table表格数据居中显示设置
    css实现鼠标悬浮图片放大
    vue中配置开发环境、测试环境、生产环境
    vue中@keyup.enter没有作用
    LambdaToSql(轻量级ORM) 入门篇 开源项目
    04.如何升级扩展以支持Visual Studio 2019
    03. 将pdb调试文件包含到.vsix包中
    02.vs插件 获取项目和解决方案路径
  • 原文地址:https://www.cnblogs.com/heimao233/p/10406115.html
Copyright © 2020-2023  润新知