Visual C++ .NET - Obtener path RELATIVOS para almacenar y leer archivos c#

 
Vista:
sin imagen de perfil

Obtener path RELATIVOS para almacenar y leer archivos c#

Publicado por Elena_Nueva (5 intervenciones) el 29/09/2015 01:23:47
Hola, tengo mi aplicación de Windows forms. En un formulario se abre un openfiledialog para solicitar un determinado archivo. En mi bdd Access quiero almacenarlo, guardando el path de este archivo. Pero!! aparece el path absoluto, necesito almacenar el relativo puesto que la aplicación ha de usarse en varios sitios. También quiero poder leer estos archivos almacenados con su path relativo.. GRACIAS!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Almacenar y leer archivos con rutas relativas en Windows Forms (.NET)

Publicado por Alejandro (265 intervenciones) el 13/02/2024 23:30:08
Elena, para trabajar con rutas relativas en lugar de rutas absolutas, puedes almacenar la ruta relativa basada en algún directorio raíz conocido. A continuación, te muestro un ejemplo de cómo podrías hacer esto en C#:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using System;
using System.IO;
using System.Windows.Forms;
 
namespace TuApp
{
    public partial class TuFormulario : Form
    {
        // Establece un directorio raíz conocido para tus archivos
        private string directorioRaiz = @"C:\TuDirectorioRaiz\";
 
        public TuFormulario()
        {
            InitializeComponent();
        }
 
        private void buttonSeleccionarArchivo_Click(object sender, EventArgs e)
        {
            using (OpenFileDialog openFileDialog = new OpenFileDialog())
            {
                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    // Obtiene la ruta completa del archivo seleccionado
                    string rutaCompleta = openFileDialog.FileName;
 
                    // Obtiene la ruta relativa basada en el directorio raíz
                    string rutaRelativa = ObtenerRutaRelativa(rutaCompleta, directorioRaiz);
 
                    // Guarda la ruta relativa en tu base de datos
                    // ...
 
                    MessageBox.Show("Archivo seleccionado: " + rutaRelativa);
                }
            }
        }
 
        // Método para obtener la ruta relativa basada en un directorio raíz
        private string ObtenerRutaRelativa(string rutaCompleta, string directorioRaiz)
        {
            Uri uriRutaCompleta = new Uri(rutaCompleta);
            Uri uriDirectorioRaiz = new Uri(directorioRaiz);
 
            // Utiliza MakeRelativeUri para obtener la ruta relativa
            Uri rutaRelativaUri = uriDirectorioRaiz.MakeRelativeUri(uriRutaCompleta);
 
            // Convierte el resultado de nuevo a una cadena
            string rutaRelativa = Uri.UnescapeDataString(rutaRelativaUri.ToString());
 
            return rutaRelativa;
        }
 
        // Otros métodos y eventos de tu formulario...
    }
}

En este ejemplo, `ObtenerRutaRelativa` toma una ruta completa y un directorio raíz, y devuelve la ruta relativa basada en ese directorio raíz. Luego, puedes almacenar esta ruta relativa en tu base de datos. Cuando necesites leer el archivo, puedes construir la ruta completa combinando la ruta relativa con el directorio raíz conocido.

Recuerda ajustar `directorioRaiz` según tus necesidades y asegurarte de manejar correctamente las rutas y directorios en tu aplicación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar