Como posso obter o caminho da pasta “Application Data” do usuário atual?
Pergunta
1) Como posso descobrir a unidade de instalação do Windows no qual o usuário está trabalhando.? Eu preciso disso para navegar para o ApplicationData ??strong> em DocumentsandSettings.
2) Também como posso obter o nome user também para que eu pode goto ApplicaitionData.? Por exemplo:. "D: \ Documents and Settings \ usuário \ Application Data"
Solução
Olhe para combinar Environment.GetFolderPath e < a href = "http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx" rel = "noreferrer"> Environment.SpecialFolder para fazer isso.
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Outras dicas
Dependendo do que você está fazendo, você pode também querer olhar para
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
Se o usuário estiver em um domínio só será armazenado em sua pasta AppData
local e não sincronizado com o seu perfil móvel.
Tenha um olhar para o Environment.SpecialFolders
Environment.SpecialFolder.ApplicationData;
Environment.SpecialFolder.System
que deverá fazê-lo arredondar a exigência nome de usuário também.
Tenha um olhar para a classe System.Environment e suas propriedades e métodos, por exemplo:
string systemDir = System.Environment.SystemDirectory;
string docs = System.Environment.GetFolderPath(
System.Environment.SpecialFolder.MyDocuments));
string systemDrive = System.IO.Path.GetPathRoot(systemDir);
As primeiras se retorna " C: \ Windows \ system32 ", por exemplo, ea segunda " C: \ Documents and Settings \ username \ Meus documentos ".
Tente isto:
string filePath = Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData);
1) Como posso descobrir a unidade de instalação do Windows em que o usuário está funcionando.?
var systemDrive = Environment.ExpandEnvironmentVariables("%systemdrive%");
Eu preciso disso para navegar para o ApplicationData em DocumentsandSettings.
Você realmente não precisa para buscar o valor de qualquer unidade do sistema ou logado no nome de usuário para alcançar este objectivo. Não são predefinidos variáveis ??de ambiente %localAppData%
e %appData%
que lhe dão caminho completo desses diretórios, como mostrado no código abaixo:
var localApplicationData = Environment.ExpandEnvironmentVariables("%localappdata%");
//this gives C:\Users\<userName>\AppData\Local
var roamingApplicationData = Environment.ExpandEnvironmentVariables("%appdata%");
//this gives C:\Users\<userName>\AppData\Roaming
2) Também como posso obter o nome de usuário também para que eu possa Goto ApplicaitionData.? Por exemplo: "D: \ Documents and Settings \ usuário \ Application Data".
nome do usuário Mais uma vez, você não precisa para obter o caminho de dados da aplicação como eu discutido acima. Ainda assim, por uma questão de conhecimento, você pode buscá-lo a partir de variável de ambiente %username%
como mostrado abaixo:
var currentUserName = Environment.ExpandEnvironmentVariables("%username%");