Visual Basic.NET - Crear carpetas y copiar archivos.

 
Vista:
sin imagen de perfil

Crear carpetas y copiar archivos.

Publicado por Ziany (3 intervenciones) el 15/11/2016 15:11:36
Buenas a todos,
Estoy creando un programa que me permita guardar información de contratos, ordenes de servicio y facturas, ya esta casi terminado, y lo ultimo que me queda por hacer es un poco complicado y espero que alguien pueda ayudarme, ya que no he encontrado como resolver mi problema.

Lo que quiero hacer:

Quiero que mi programa pueda guardar en una base de datos informacion sobre diversos contratos en una base de datos en SQL.
Tengo tres tablas en SQL y todas las tablas tienen un campo que dice: "ARCHIVOS". Lo que necesito es que en ese campo se guarde la ruta (en forma de link si es posible) de donde guarde ese archivo.

Para guradar el archivo, poseo el siguiente codigo:

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
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnselecc.Click
        OpenFileDialog1.InitialDirectory = "C:\"
        OpenFileDialog1.RestoreDirectory = True
        If OpenFileDialog1.ShowDialog = DialogResult.Cancel Then
            Return
        Else
            TextBox1.Text = OpenFileDialog1.FileName
        End If
    End Sub
 
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnruta.Click
        If FolderBrowserDialog1.ShowDialog = DialogResult.Cancel Then
            Return
        Else
            TextBox2.Text = FolderBrowserDialog1.SelectedPath + "\" + CStr(OpenFileDialog1.SafeFileName)
        End If
    End Sub
 
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
 
 
''Crear carpetas
 
        Dim ruta1 As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
        Dim ruta2 As String = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
        Dim miCarpeta As String = "NOMBRE DE CARPETA"
 
        Try
            System.IO.Directory.CreateDirectory(System.IO.Path.Combine(ruta1, miCarpeta))
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
        If TextBox1.Text = "" Then
            MsgBox("Debes elegir un archivo para guardar", MsgBoxStyle.Information, "GUARDAR ARCHIVO")
        Else
            My.Computer.FileSystem.CopyFile(TextBox1.Text, True)
            MsgBox("El archivo se a guardado correctamente", MsgBoxStyle.Information, "GUARDAR ARCHIVO")
        End If
    End Sub

Este código me permite elegir un archivo y copiarlo a otra carpeta, el problema es que necesito que cuando se instale mi aplicación, se creen tres carpetas, una para guardar los contratos, otra para las ordenes de servicio y la ultima para guardar las facturas. Y que dependiendo del formulario en que el usuario se encuentra, ya sea el de añadir contrato, el de añadir orden o el de añadir facturas; al copiar el archivo, se guarde automáticamente en la carpeta que le corresponde.

El código anterior, si funciona, pero deja que el usuario elija la carpeta donde se guardara el archivo a su gusto, cuando no debería de ser así.

De verdad necesito ayuda para poder finalizar con la programación de mi proyecto, para pasar a darle interfaz, crear el manual de usuario y hacer toda la documentación correspondiente;
Espero que puedan ayudarme, de verdad lo necesito.
Saludos!
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 Edward
Val: 392
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Crear carpetas y copiar archivos.

Publicado por Edward (146 intervenciones) el 16/11/2016 03:45:43
Buen día para todos,

Ziany, Me queda la duda de que si tu problema radica en que el usuario debe seleccionar la carpeta donde guardara el archivo??

Porque no lo haces directamente, crear la carpeta destino y eliminar esa opción.

1
2
3
4
5
6
7
8
9
10
11
12
13
Dim CarpetaDestino as string = My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\NuevaCarpeta"
 
Try
    ':::Validamos si la carpeta existe
    If My.Computer.FileSystem.DirectoryExists(CarpetaDestino) Then
        '===Procedimiento
    Else
        ':::Si la carpeta no existe la creamos
        My.Computer.FileSystem.CreateDirectory(CarpetaDestino)
    End If
Catch ex As Exception
    MsgBox("Error al realizar el proceso debido a: " & ex.Message)
End Try


Espero haber sido de ayuda.

Que tengan buen día,

El conocimiento siempre debe ser compartido, para que entre todos aprendamos un poco mas...

Mas ejemplos acá...

https://aprendamosdeprogramacion.wordpress.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar