Windows用户配置文件路径文件夹

时间:2013-01-28 11:19:43

标签: .net windows

任何人都可以描述如何在DotNet的屏幕截图中获取以下文件夹以及这些文件夹的用途是什么?下面在Dotnet命名空间中描述为“Missed”的文本中。

User folder Windows Explorer

我只能通过My.Computer.FileSystem.SpecialDirectories

获取以下文件夹

PROPERTY ....的用途

AllUsersApplicationData

  

应用程序应存储所有用户设置的目录   (通常,类似于   C:\ ProgramData \ WindowsApplication1 \ WindowsApplication1 \ 1.0.0.0)

CurrentUserApplicationData

  

应用程序应存储当前设置的目录   用户(通常是类似的东西)   C:\用户\ PeterBlue \应用程序数据\漫游\ WindowsApplication1 \ WindowsApplication1 \ 1.0.0.0)

桌面

  

当前用户的桌面目录(通常是   C:\用户\ PeterBlue \桌面)

MyDocuments

  

当前用户的My Documents目录(通常是   C:\用户\ PeterBlue \文件)

MyMusic

  

当前用户的“我的音乐”目录(通常情况下,   C:\用户\ PeterBlue \音乐)

MyPictures

  

当前用户的“我的图片”目录(通常情况下,   C:\用户\ PeterBlue \图片)

ProgramFiles

  

Program Files目录(通常是C:\ Program Files)。

计划

  

当前用户的“程序”目录(通常是   C:\ Users \用户PeterBlue \应用程序数据\漫游\微软\的Windows \启动   菜单\程序)。

温度

  

当前用户的临时目录(通常,   C:\用户\ PeterBlue \应用程序数据\本地\温度)

DotNet命名空间中的

错过并错过了信息:

  • 管理员
  • 默认
  • 默认用户(为什么有关键信号以及如何获取访问权限?)
  • 用户

*自有解决方案*

我自己解决文件夹问题的解决方案是使用命令行cmdDir /ah All users directory ex:现在我们可以看到真正的文件夹是“C:\ Users \ Public \ Documents”而不是“C:\ Users \ All Users”,它可以通过Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments)

访问

3 个答案:

答案 0 :(得分:2)

我认为,您正在寻找以下方法:

Environment.GetFolderPath(Environment.SpecialFolder.Mydocuments);

以及

Environment.SpecialFolder.ApplicationData
Environment.SpecialFolder.System
Environment.SpecialFolder.CommonApplicationData
Environment.SpecialFolder.CommonProgramFiles
Environment.SpecialFolder.Cookies
Environment.SpecialFolder.Desktop
Environment.SpecialFolder.DesktopDirectory
Environment.SpecialFolder.Favorites
Environment.SpecialFolder.History
Environment.SpecialFolder.InternetCache
Environment.SpecialFolder.LocalApplicationData
Environment.SpecialFolder.MyComputer
Environment.SpecialFolder.MyMusic
Environment.SpecialFolder.MyPictures
Environment.SpecialFolder.Personal
Environment.SpecialFolder.ProgramFiles
Environment.SpecialFolder.Programs
Environment.SpecialFolder.Recent
Environment.SpecialFolder.SendTo
Environment.SpecialFolder.StartMenu

这里有以下内容:here

答案 1 :(得分:2)

请注意,您不应使用这些配置文件文件夹来猜测可以从Environment.GetFolderPath检索的任何内容。您可以从那里获得的任何东西都可以通过SHSetFolderPath或其他工具进行更改。已经记录了检索这些文件夹的受支持方式(Environment.GetFolderPath,SHGetFolderPath等)

  • 管理员/ 用户:名为Administrator / user 的用户的配置文件的默认位置。可以使用用户令牌通过GetUserProfileDirectory检索。
  • 默认:创建新用户时使用的模板用户个人资料的默认位置可由GetDefaultUserProfileDirectory
  • 重试
  • 默认用户:某些OEM可能会错误地创建此文件夹。可能是为XP编写的代码遗留下来的,其中默认用户配置文件存储在GetProfilesDirectory \ Default User中。除非SysPrep更改了默认用户配置文件目录,否则对此文件夹进行的自定义无效。使用文档化的API始终是一个好主意,以避免这样的问题。

Environment.SpecialFolder是CSIDL值的包装器,因此它不包含默认用户配置文件或其他用户的标志。

答案 2 :(得分:0)

您可以使用以下方式获取当前用户目录和父用户目录:

//get the current user's home directory (C:/Users/user)
string userDirectory = Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%");
//get the Users directory (C:/Users)
string homeUsersDirectory = userDirectory.Substring(0, userDirectory.LastIndexOf("\\"));

这是您要找的吗?
我不确定是否可以为其他用户检索用户目录。如果您知道他们的用户名,可以通过将用户名添加到homeUsersDirectory字符串来获取用户名。
但是,默认情况下,您的目录中不应具有写入权限。