Como posso obter o caminho da pasta “Application Data” do usuário atual?

StackOverflow https://stackoverflow.com/questions/915210

  •  06-09-2019
  •  | 
  •  

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 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"

Foi útil?

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%");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top