Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: _CrisiS_ en 5 Noviembre 2010, 06:11 am



Título: Formato a una variable?
Publicado por: _CrisiS_ en 5 Noviembre 2010, 06:11 am
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ódigo:
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


Título: Re: Formato a una variable?
Publicado por: Keyen Night en 5 Noviembre 2010, 13:34 pm
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.


Título: Re: Formato a una variable?
Publicado por: jlrvpuma en 5 Noviembre 2010, 21:18 pm
mas o menos así:
int posIni =fullPath.GetLastIndexOf("\\");
string nuevaCadena ="..." +  fullPath.SubString(posIni+1,fullPath.Length - posIni);
claro que puedes mejorarlo un poco....


Título: Re: Formato a una variable?
Publicado por: _CrisiS_ en 7 Noviembre 2010, 04:54 am
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


Título: Re: Formato a una variable?
Publicado por: jlrvpuma en 8 Noviembre 2010, 05:55 am
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"


Título: Re: Formato a una variable?
Publicado por: WHK en 8 Noviembre 2010, 06:26 am
Código
  1. dim ver() as string = split("\", path)
  2. msgbox(ver(ver.count - 1)) ' muestra un alert con la ultima ruta


Título: Re: Formato a una variable?
Publicado por: jlrvpuma en 8 Noviembre 2010, 15:01 pm
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


Título: Re: Formato a una variable?
Publicado por: .mokk. en 8 Noviembre 2010, 18:19 pm
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
  1. Imports System.IO
  2.  
  3. Public Class Form1
  4.  
  5.    Private Sub listararchivos()
  6.        Dim copiar as String
  7.        copiar = "C:\Archivos\"
  8.  
  9.        For Each Archivo As String In My.Computer.FileSystem.GetFiles( _
  10. Application.StartupPath, _
  11. FileIO.SearchOption.SearchAllSubDirectories)
  12.  
  13.            Dim a, b As String
  14.            a = Archivo
  15.            b = My.Computer.FileSystem.GetName(Archivo)
  16.            'Mostramos en un label el nombre del archivo a copiar
  17.            Label1.Text = b
  18.            'Copiar archivo a una ruta que especamos anteriormente
  19.            File.Copy(a,copiar + b)
  20.  
  21.        Next
  22.        Label2.Text = "Lista Actualizada! - " & Date.Now.ToString
  23.    End Sub
  24.  
  25. End class