Application.UserAppDataPath Application.UserAppDataPath Application.UserAppDataPath Application.UserAppDataPath Property

Definición

Obtiene la ruta de acceso de los datos de aplicación de un usuario.Gets the path for the application data of a user.

public:
 static property System::String ^ UserAppDataPath { System::String ^ get(); };
public static string UserAppDataPath { get; }
member this.UserAppDataPath : string
Public Shared ReadOnly Property UserAppDataPath As String

Valor de propiedad

Ruta de acceso de los datos de aplicación de un usuario.The path for the application data of a user.

Ejemplos

En el ejemplo de código siguiente se muestran dos formularios y se sale de la aplicación cuando ambos formularios están cerrados.The following code example displays two forms and exits the application when both forms are closed. Cuando la aplicación se inicia y se cierra, se recuerda la posición de cada formulario.When the application starts and exits, the position of each form is remembered. En este ejemplo se muestra UserAppDataPath el uso de la propiedad para almacenar los datos de la aplicación para el usuario.This example demonstrates using the UserAppDataPath property to store application data for the user.

La clase MyApplicationContext hereda de ApplicationContext y realiza un seguimiento cuando se cierra cada formulario y sale del subproceso actual cuando ambos son.The class MyApplicationContext inherits from ApplicationContext and keeps track when each form is closed, and exits the current thread when they both are. La clase almacena las posiciones de cada formulario del usuario.The class stores the positions of each form for the user. Los datos de la posición del formulario se almacenan Appdata.txt en un archivo denominado que se crea en UserAppDataPathla ubicación determinada por.The form position data is stored in a file titled Appdata.txt that is created in the location determined by UserAppDataPath. El Main método llama Application.Run(context) a para iniciar la aplicación dado ApplicationContextel.The Main method calls Application.Run(context) to start the application given the ApplicationContext.

Este código es un extracto del ejemplo que se muestra en ApplicationContext la información general de la clase.This code is an excerpt from the example shown in the ApplicationContext class overview. Parte del código no se muestra con fines de brevedad.Some code is not shown for the purpose of brevity. Vea ApplicationContext para ver la lista de código completa.See ApplicationContext for the whole code listing.

   MyApplicationContext()
   {
      _formCount = 0;
      
      // Handle the ApplicationExit event to know when the application is exiting.
      Application::ApplicationExit += gcnew EventHandler( this, &MyApplicationContext::OnApplicationExit );
      try
      {
         
         // Create a file that the application will store user specific data in.
         _userData = gcnew FileStream( String::Concat( Application::UserAppDataPath, "\\appdata.txt" ),FileMode::OpenOrCreate );
      }
      catch ( IOException^ e ) 
      {
         
         // Inform the user that an error occurred.
         MessageBox::Show( "An error occurred while attempting to show the application. The error is: {0}", dynamic_cast<String^>(e) );
         
         // Exit the current thread instead of showing the windows.
         ExitThread();
      }

      
      // Create both application forms and handle the Closed event
      // to know when both forms are closed.
      _form1 = gcnew AppForm1;
      _form1->Closed += gcnew EventHandler( this, &MyApplicationContext::OnFormClosed );
      _form1->Closing += gcnew CancelEventHandler( this, &MyApplicationContext::OnFormClosing );
      _formCount++;
      _form2 = gcnew AppForm2;
      _form2->Closed += gcnew EventHandler( this, &MyApplicationContext::OnFormClosed );
      _form2->Closing += gcnew CancelEventHandler( this, &MyApplicationContext::OnFormClosing );
      _formCount++;
      
      // Get the form positions based upon the user specific data.
      if ( ReadFormDataFromFile() )
      {
         
         // If the data was read from the file, set the form
         // positions manually.
         _form1->StartPosition = FormStartPosition::Manual;
         _form2->StartPosition = FormStartPosition::Manual;
         _form1->Bounds = _form1Position;
         _form2->Bounds = _form2Position;
      }

      
      // Show both forms.
      _form1->Show();
      _form2->Show();
   }

   void OnApplicationExit( Object^ /*sender*/, EventArgs^ /*e*/ )
   {
      
      // When the application is exiting, write the application data to the
      // user file and close it.
      WriteFormDataToFile();
      try
      {
         
         // Ignore any errors that might occur while closing the file handle.
         _userData->Close();
      }
      catch ( Exception^ ) 
      {
      }

   }

private:

private MyApplicationContext()
{
    _formCount = 0;

    // Handle the ApplicationExit event to know when the application is exiting.
    Application.ApplicationExit += new EventHandler(this.OnApplicationExit);

    try
    {
        // Create a file that the application will store user specific data in.
        _userData = new FileStream(Application.UserAppDataPath + "\\appdata.txt", FileMode.OpenOrCreate);

    }
    catch (IOException e)
    {
        // Inform the user that an error occurred.
        MessageBox.Show("An error occurred while attempting to show the application." +
                        "The error is:" + e.ToString());

        // Exit the current thread instead of showing the windows.
        ExitThread();
    }

    // Create both application forms and handle the Closed event
    // to know when both forms are closed.
    _form1 = new AppForm1();
    _form1.Closed += new EventHandler(OnFormClosed);
    _form1.Closing += new CancelEventHandler(OnFormClosing);
    _formCount++;

    _form2 = new AppForm2();
    _form2.Closed += new EventHandler(OnFormClosed);
    _form2.Closing += new CancelEventHandler(OnFormClosing);
    _formCount++;

    // Get the form positions based upon the user specific data.
    if (ReadFormDataFromFile())
    {
        // If the data was read from the file, set the form
        // positions manually.
        _form1.StartPosition = FormStartPosition.Manual;
        _form2.StartPosition = FormStartPosition.Manual;

        _form1.Bounds = _form1Position;
        _form2.Bounds = _form2Position;
    }

    // Show both forms.
    _form1.Show();
    _form2.Show();
}

private void OnApplicationExit(object sender, EventArgs e)
{
    // When the application is exiting, write the application data to the
    // user file and close it.
    WriteFormDataToFile();

    try
    {
        // Ignore any errors that might occur while closing the file handle.
        _userData.Close();
    }
    catch { }
}
Public Sub New()
    MyBase.New()
    _formCount = 0

    ' Handle the ApplicationExit event to know when the application is exiting.
    AddHandler Application.ApplicationExit, AddressOf OnApplicationExit

    Try
        ' Create a file that the application will store user specific data in.
        _userData = New FileStream(Application.UserAppDataPath + "\appdata.txt", FileMode.OpenOrCreate)

    Catch e As IOException
        ' Inform the user that an error occurred.
        MessageBox.Show("An error occurred while attempting to show the application." +
                        "The error is:" + e.ToString())

        ' Exit the current thread instead of showing the windows.
        ExitThread()
    End Try

    ' Create both application forms and handle the Closed event
    ' to know when both forms are closed.
    _form1 = New AppForm1()
    AddHandler _form1.Closed, AddressOf OnFormClosed
    AddHandler _form1.Closing, AddressOf OnFormClosing
    _formCount = _formCount + 1

    _form2 = New AppForm2()
    AddHandler _form2.Closed, AddressOf OnFormClosed
    AddHandler _form2.Closing, AddressOf OnFormClosing
    _formCount = _formCount + 1

    ' Get the form positions based upon the user specific data.
    If (ReadFormDataFromFile()) Then
        ' If the data was read from the file, set the form
        ' positions manually.
        _form1.StartPosition = FormStartPosition.Manual
        _form2.StartPosition = FormStartPosition.Manual

        _form1.Bounds = _form1Position
        _form2.Bounds = _form2Position
    End If

    ' Show both forms.
    _form1.Show()
    _form2.Show()
End Sub

Private Sub OnApplicationExit(ByVal sender As Object, ByVal e As EventArgs)
    ' When the application is exiting, write the application data to the
    ' user file and close it.
    WriteFormDataToFile()

    Try
        ' Ignore any errors that might occur while closing the file handle.
        _userData.Close()
    Catch
    End Try
End Sub

Comentarios

Si no existe una ruta de acceso, se crea una con el siguiente formato:If a path does not exist, one is created in the following format:

Ruta de base\CompanyName\ProductName\ProductVersionBase Path\CompanyName\ProductName\ProductVersion

Los datos almacenados en esta ruta de acceso forman parte del perfil de usuario que está habilitado para itinerancia.Data stored in this path is part of user profile that is enabled for roaming. Un usuario móvil trabaja en más de un equipo de una red.A roaming user works on more than one computer in a network. El perfil de usuario de un usuario móvil se mantiene en un servidor de la red y se carga en un sistema cuando el usuario inicia sesión.The user profile for a roaming user is kept on a server on the network and is loaded onto a system when the user logs on. Para que un perfil de usuario se tenga en cuenta para itinerancia, el sistema operativo debe admitir perfiles móviles y debe estar habilitado.For a user profile to be considered for roaming, the operating system must support roaming profiles and it must be enabled.

Una ruta de acceso base típica es C:\Documents\and SettingsnombreDeUsuario\Application Data.A typical base path is C:\Documents and Settings\username\Application Data. Sin embargo, esta ruta de acceso será diferente si la aplicación Windows Forms se implementa ClickOnceClickOncemediante.This path will be different, however, if the Windows Forms application is deployed by using ClickOnceClickOnce. ClickOnceClickOncecrea su propio directorio de datos de la aplicación que está aislado de todas las demás aplicaciones.creates its own application data directory that is isolated from all other applications. Para obtener más información, vea obtener acceso a datos locales y remotos en aplicaciones ClickOnce.For more information, see Accessing Local and Remote Data in ClickOnce Applications.

Se aplica a

Consulte también: