Formato a una variable?

Iniciado por _CrisiS_, 5 Noviembre 2010, 06:11 AM

0 Miembros y 1 Visitante están viendo este tema.

_CrisiS_

Buenas, mi problema es el siguiente
tengo una variable llamada "dir".(que es la direccion de la ubicacion del proyecto"
usando la funcion "My.Computer.FileSystem.CopyDirectory" copio todo el contenido de una carpeta.

Entonces el resultado de la cadena seria asi: (ejm)

C:\Documents and Settings\RICARDO\Escritorio\Instalador Parche2\Instalador\archi1.exe
C:\Documents and Settings\RICARDO\Escritorio\Instalador\carpeta2\fotos2.JPG
etc

ahora como haria yo para q la cadena de mi variable solo me muestre digamos
Copiado....archi1.exe
Copiado....carpeta2\fotos2.jpg

Keyen Night

No entendi muy bien, pero si lo que quieres es mostrar los archivos que ya fueron copiados mientras se da el trabajo entonces no lo podrás hacer con CopyDirectory ya copia la carpeta entera sin decirte cual archivo esta copiando debes entonces obtener los archivos de la carpeta principal y copiarlos uno por uno en la carpeta destino mientras los vas mostrando.
La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...

jlrvpuma

mas o menos así:
int posIni =fullPath.GetLastIndexOf("\\");
string nuevaCadena ="..." +  fullPath.SubString(posIni+1,fullPath.Length - posIni);
claro que puedes mejorarlo un poco....

_CrisiS_

Keyen:
Bueno tb logre q em muestre todos los archivos de la carepta q llegan a estar copiados,lo malo q tb me listaba los archivos que estaban en la carpeta que no los que yo copie.

jlrvpuma:
amigo podrias explicarme un poco mejor como aplicaria tu metodo con mi variable X3

jlrvpuma

#4
lo que hago es simple: recorto la parte que dice 'archivo.ext' y le agrego ula cadena '...', por lo que al final queda: '...archivo.ext'.
Con
int posIni =fullPath.GetLastIndexOf("\\");
se obtiene la psoiciòn de la última ocurrencia de '\', se pone doble porque ese caracter es un caracter de escape, o bien hubiera podido ser: GetLastIndexOf(@"\"); por cierto si tienes un string con un path usa el arroba delante del path, por ejemplo:
string path: @"C:\cualquier\archivo.ext"; es para evitar poblemas con el caracter '\' ....
Bueno, sigo, decía que obtengo la posicion del ultimo '\', eso quiere decir justo antes de 'archivo.ext'. El metodo subtring recibe tres parametros:
1- cadena original
2-posicion o index desde dónde se desea cortar
3-Length o tamaño de cadena a cortar.
Se quiere que empieze no desde el último '\' sino una posiciòn mas adelante:
posIni+1

El tamaño que se quiere cortar,en este caso solo serìa 'archivo.ext' y seria :
fullPath.Length - posIni
...

Por ejmplo:
string cadena = "jlrvpuma";
int posIni = cadena.GetLastIndexOf("v");
int length = cadena.Length - posIni;
string nuevaCadena = cadena.SubString(cadena,posIni+1,length);
//ahora nuevaCadena es "puma"

WHK

#5
Código (vbnet) [Seleccionar]
dim ver() as string = split("\", path)
msgbox(ver(ver.count - 1)) ' muestra un alert con la ultima ruta

jlrvpuma

Ja javascript:void(0); si es cierto!, con el método split tambien se puede hacer...el métoo split crea un arry con todas las divisiones

.mokk.

Bueno yo lo haria algo asi, si esque quieres copiar todos los archivos que se encuentran en tu carpeta de la aplicacion y ademas de sus subcarpetas seria algo asi

Código (vb.net) [Seleccionar]

Imports System.IO

Public Class Form1

    Private Sub listararchivos()
        Dim copiar as String
        copiar = "C:\Archivos\"

        For Each Archivo As String In My.Computer.FileSystem.GetFiles( _
Application.StartupPath, _
FileIO.SearchOption.SearchAllSubDirectories)

            Dim a, b As String
            a = Archivo
            b = My.Computer.FileSystem.GetName(Archivo)
            'Mostramos en un label el nombre del archivo a copiar
            Label1.Text = b
            'Copiar archivo a una ruta que especamos anteriormente
            File.Copy(a,copiar + b)

        Next
        Label2.Text = "Lista Actualizada! - " & Date.Now.ToString
    End Sub

End class