Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: z3nth10n en 23 Enero 2013, 16:37 pm



Título: Como usar FileSystemWatcher
Publicado por: z3nth10n en 23 Enero 2013, 16:37 pm
Hola, como no estoy seguro si se puede hacer mas de una duda en el mismo post (que creo que no se puede) xD Soy un fuera de la ley :P

En fin, Elektro ya sabe lo que quiero hacer, yo lo recuerdo, quiero hacer algo así:

(http://i.imgur.com/aCE3Wwf.png)
(Ni caso por lo del TreeView)

El caso que yo antes usaba FileListBox en VB6, el caso que las cosas han cambiado un "poquitin de nada" y ese Campo se ha tranformado en este otro que os vengo comentando en el titulo.

El caso es, como lo podria hacer? :)

Un saludo.


Título: Re: Como usar FileSystemWatcher
Publicado por: _katze_ en 23 Enero 2013, 16:57 pm
http://msdn.microsoft.com/es-es/library/system.io.filesystemwatcher(v=vs.80).aspx (http://msdn.microsoft.com/es-es/library/system.io.filesystemwatcher(v=vs.80).aspx)

pero para lo que queres noc si sera..


Título: Re: Como usar FileSystemWatcher
Publicado por: Eleкtro en 23 Enero 2013, 16:58 pm
Fuf... Vale,

Creo que te has confundido bastante, y creo que el título del post no tiene nada que ver, el filesystemwatcher es para monitorizar los cambios de archivos en un directorio, si tu quieres visualizar los archivos de un directorio, usa por ejemplo un listbox para listarlos adentro...

EDITO: Pero vamos, que si quieres además monitorizar el directorio en tiempo real para ir actualizando la lista cada cierto tiempo si se elimina o se añade un archivo con el FileSystemWatcher... eso ya es otra historia xD

Código
  1. Public Class Form1
  2.  
  3.    Dim Listita As New ListBox
  4.  
  5.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  6.        Me.Size = New Point(240, 240)
  7.  
  8.        Listita.Dock = DockStyle.Fill
  9.        Listita.BackColor = Color.White
  10.        Listita.ForeColor = Color.Black
  11.        Listita.Font = New Font(Listita.Font.FontFamily, 12, Listita.Font.Style)
  12.        Me.Controls.Add(Listita)
  13.  
  14.        Dim Files As Array = IO.Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "*", IO.SearchOption.TopDirectoryOnly)
  15.  
  16.        For Each File In Files
  17.            Dim File_Info As New IO.FileInfo(File)
  18.            Listita.Items.Add(File_Info.Name)
  19.        Next
  20.    End Sub
  21.  
  22. End Class

(http://img29.imageshack.us/img29/5916/captura1ba.png)


Título: Re: Como usar FileSystemWatcher
Publicado por: z3nth10n en 23 Enero 2013, 17:18 pm
Trolololol, pero se muestran los archivos en el Form no en el listbox, he probado a ponerlo dentro de la misma caja pero sale en blanco xD


Título: Re: Como usar FileSystemWatcher
Publicado por: Eleкtro en 23 Enero 2013, 17:21 pm
Trolololol, pero se muestran los archivos en el Form no en el listbox

¿Que te has fumado Seazoux?  :P

Fíjate mejor en el código...

Código
  1. Listita.Dock = DockStyle.Fill ' Esto hace que el form se rellene con el listbox...

Saludos


Título: Re: Como usar FileSystemWatcher
Publicado por: z3nth10n en 23 Enero 2013, 17:22 pm
¿Que te has fumado Seazoux?

Fíjate mejor en el código...

Código
  1. Listita.Dock = DockStyle.Fill ' Esto hace que el form se rellene con el listbox...

Saludos

Me tomado las anfetaminas de no leer xD Ahora te cuento xDDDD



Configurado, y como puedo poner en un label, Roms encontrados (x) ??


Título: Re: Como usar FileSystemWatcher
Publicado por: Eleкtro en 23 Enero 2013, 17:53 pm
Configurado, y como puedo poner en un label, Roms encontrados (x) ??

Muy sencillo, contando la longitud de este array:
Cita de: Elektor H.
Código
  1. Dim Files As Array = IO.Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "*", IO.SearchOption.TopDirectoryOnly)

Código
  1. Dim TotalRoms as int32 = "longitud del array" ' Eso no te lo voy a dar hecho, en Google sale, si no sabes búscalo, es sencillísimo xD
  2. Label1.text = "Roms encontrados (" & TotalRoms & ")"


Título: Re: Como usar FileSystemWatcher
Publicado por: z3nth10n en 23 Enero 2013, 18:01 pm
Muy sencillo, contando la longitud de este array:
Código
  1. Dim TotalRoms as int32 = "longitud del array" ' Eso no te lo voy a dar hecho, en Google sale, si no sabes búscalo, es sencillísimo xD
  2. Label1.text = TotalRoms

sera facil para ti que tienes tropecientos titulos, pero yo que no he manejado nunca vb, esto me suena a chino lol


Título: Re: Como usar FileSystemWatcher
Publicado por: Eleкtro en 23 Enero 2013, 18:28 pm
yo que no he manejado nunca vb, esto me suena a chino lol

Pero se trata de aprender, yo lo que véo dificil para tu nivel te lo doy hecho, pero es que las cosas así de fáciles como lo de la longitúd....

anda toma:
Código
  1.    Dim TotalRoms as int32 = Files.Length
  2.    Label1.text = "Roms encontrados (" & TotalRoms & ")"


Título: Re: Como usar FileSystemWatcher
Publicado por: z3nth10n en 23 Enero 2013, 20:09 pm
Pero se trata de aprender, yo lo que véo dificil para tu nivel te lo doy hecho, pero es que las cosas así de fáciles como lo de la longitúd....

anda toma:
Código
  1.    Dim TotalRoms as int32 = Files.Length
  2.    Label1.text = "Roms encontrados (" & TotalRoms & ")"

No te creas soy muy dificil, ademas, si alho no he visto en mi vida no se como seguirlo

Tambien, dime como saco la variable de la ruta del archivo seleccionado, yo voy a intentar aplicarlo a lo que yo quiero. :)



EDITO:
Error:

Código:
   Dim Files As Array = IO.Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "*", IO.SearchOption.TopDirectoryOnly)

Error   1   'Windows' no es un miembro de 'System.Environment.SpecialFolder'.   C:\Users\Alvaro\Documents\VisualBasic NET\Projectos\WebKitEmulator\WindowsApplication1\WindowsApplication1\Form2.vb   4   74   WindowsApplication1


LOL?


Título: Re: Como usar FileSystemWatcher
Publicado por: Eleкtro en 23 Enero 2013, 20:12 pm
dime como saco la variable de la ruta del archivo seleccionado

Explícate mejor.

PD: Ah, y eso son 5 € o un "PORFAVOR gran Elektro H. muéstrame el camino" xD



EDITO:


Error   1   'Windows' no es un miembro de 'System.Environment.SpecialFolder'.   C:\Users\Alvaro\Documents\VisualBasic NET\Projectos\WebKitEmulator\WindowsApplication1\WindowsApplication1\Form2.vb   4   74   WindowsApplication1

Que Framework estás usando?

La respuesta que te dí es para FW 4.X, si estás usando FW 3.X pues símplemente modifica "Windows" por "System", porqué Windows no está xD, recuerda que sólo es un ejemplo, ahí debes poner la ruta que tu quieres usar, no la que yo he usado...

Saludos.


Título: Re: Como usar FileSystemWatcher
Publicado por: z3nth10n en 23 Enero 2013, 20:21 pm
Explícate mejor.

PD: Ah, y eso son 5 € o un "PORFAVOR gran Elektro H. muéstrame el camino" xD

A ver te explico, cuando seleccionas un file en el listbox, quiero sacar el texto "C:\Users\Tata\Documents\lalala.txt" por ejemplo. Eso es para cambiar el WebBrowser.Navigate, pero tu solo dime como lo saco ya me encargo yo de meterlo, PORFAVOR gran Elektro H. muéstrame el camino. LOL



Sobre la versión:

(http://i.imgur.com/zE2WgjU.png)


Título: Re: Como usar FileSystemWatcher
Publicado por: Eleкtro en 23 Enero 2013, 20:24 pm
A ver te explico, cuando seleccionas un file en el listbox, quiero sacar el texto "C:\Users\Tata\Documents\lalala.txt" por ejemplo

es fácil, pero postea tu class y te añado esa modificación, que paso de hardcodear otro ejemplo sólo para eso xD.


Título: Re: Como usar FileSystemWatcher
Publicado por: z3nth10n en 23 Enero 2013, 20:30 pm
es fácil, pero postea tu class y te añado esa modificación, que paso de hardcodear otro ejemplo sólo para eso xD.

Todo el code del Form2:

Código
  1. Public Class Form2
  2.  
  3.    Dim Listita As New ListBox
  4.    Private Sub Form2_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
  5.        Listita.BackColor = Color.White
  6.        Listita.ForeColor = Color.Black
  7.        Listita.Size = New Point(340, 251)
  8.        Listita.Location = New Point(12, 25) ' Dejo un margen de espacio de 100 px porque solo quieres ocupar "la mayor parte"
  9.        Me.Controls.Add(Listita)
  10.  
  11.        Dim Files As Array = IO.Directory.GetFiles("C:\Users\Alvaro\Documents\", "*", IO.SearchOption.TopDirectoryOnly)
  12.  
  13.        For Each File In Files
  14.            Dim File_Info As New IO.FileInfo(File)
  15.            Listita.Items.Add(File_Info.Name)
  16.        Next
  17.  
  18.        Dim Files1 As Array = IO.Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.System), "*", IO.SearchOption.TopDirectoryOnly)
  19.        Dim TotalRoms As Int32 = Files1.Length
  20.        Label1.Text = "Roms encontrados (" & TotalRoms & ")"
  21.    End Sub
  22.  
  23.    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
  24.        Me.Close()
  25.    End Sub
  26. End Class
  27.  


Título: Re: Como usar FileSystemWatcher
Publicado por: Eleкtro en 23 Enero 2013, 20:37 pm
Cuanto Copy&Paste '¬¬




1. Ya que has añadido el Listbox desde el code como en mi ejemplo y no lo has hecho desde el designer, tienes que asociar el evento "selecteditemchanged" del listbox a un sub manualmente:
Código
  1.  AddHandler Listita.SelectedIndexChanged, AddressOf Listita_SelectedIndexChanged


2. El sub:
Código
  1.    Private Sub Listita_SelectedIndexChanged(sender As Object, e As EventArgs)
  2.        Dim Item As String = Listita.SelectedItem
  3.        MsgBox(Item)
  4.    End Sub


3. Junta el puzzle xD


Saludos.


Título: Re: Como usar FileSystemWatcher
Publicado por: z3nth10n en 23 Enero 2013, 20:46 pm
Cuanto Copy&Paste '¬¬



1. Ya que has añadido el Listbox desde el code como en mi ejemplo y no lo has hecho desde el designer, tienes que asociar el evento "selecteditemchanged" del listbox a un sub manualmente:

Código
  1.  AddHandler Listita.SelectedIndexChanged, AddressOf Listita_SelectedIndexChanged

2. El sub:
Código
  1.    Private Sub Listita_SelectedIndexChanged(sender As Object, e As EventArgs)
  2.        Dim Item As String = Listita.SelectedItem
  3.        MsgBox(Item)
  4.    End Sub

Saludos.

Hice eso, pero cada vez que le hago click, me da un aler con el nombre del archivo. Como pondria la ruta del archivo?



Vale, ya se lo que tengo que cambiar, no me hagais ni caso.
Por cierto Elektro, como setearia una variable sin DIM, para unir la ruta del archivo y el nombre del archivo?


Título: Como usar FileSystemWatcher
Publicado por: Novlucker en 23 Enero 2013, 20:48 pm
Seazoux, lo he dicho antes y lo voy a seguir diciendo, tu no quieres programar, a ti te gusta la idea de programar y ser autor de algo, pero tampoco estas dispuesto a realizar el camino correcto, prefieres que alguien haga todo por ti mientras tu puedas poner tu nombre en el about, mientras sigas así no vas a ningún lado, la última pregunta ha sido sobre 4 líneas! No te molestas en buscar absolutamente nada >:(

Saludos


Título: Re: Como usar FileSystemWatcher
Publicado por: z3nth10n en 23 Enero 2013, 21:26 pm
Seazoux, lo he dicho antes y lo voy a seguir diciendo, tu no quieres programar, a ti te gusta la idea de programar y ser autor de algo, pero tampoco estas dispuesto a realizar el camino correcto, prefieres que alguien haga todo por ti mientras tu puedas poner tu nombre en el about, mientras sigas así no vas a ningún lado, la última pregunta ha sido sobre 4 líneas! No te molestas en buscar absolutamente nada >:(

Saludos

Te explico, estoy estudiando ahora mismo, estoy haciendo el resumen del tema de Tecnologia, no tengo mucho timepo, lo intento, pero vamos. Gracias pr desbloquearlo, espero que lo entendais a Elektro ya se lo explique y en fin. Sorry por las molestias.

Un saludo.



En resumen, que no tengo mucho tiempo, intentare buscar codigo por Internet en caso de que sea una duda sencilla, y si tengo algun error, preguntarlo. Esto sera algo asi como un adelatanto a mi futuro, asi cuando vaya a ser ingeniero informatcio que me sea mas facil programar. :)
Es decir, tener una base, usare mi manual, y si no entiendo algo, pues lo preguntare. :)



Citar
Hice eso, pero cada vez que le hago click, me da un aler con el nombre del archivo. Como pondria la ruta del archivo?



Vale, ya se lo que tengo que cambiar, no me hagais ni caso.
Por cierto Elektro, como setearia una variable sin DIM, para unir la ruta del archivo y el nombre del archivo?

Vale ya se como se hace :)

Código
  1. Dim Ruta As String = "C:\Users\Alvaro\Documents\"

Código
  1. Dim Item As String = Listita.SelectedItem
  2. MsgBox(Ruta + Item)

Poca cosa, pero un buen progreso :)


Título: Re: Como usar FileSystemWatcher
Publicado por: Eleкtro en 23 Enero 2013, 21:44 pm
En resumen, que no tengo mucho tiempo, intentare buscar codigo por Internet en caso de que sea una duda sencilla, y si tengo algun error, preguntarlo. Esto sera algo asi como un adelatanto a mi futuro, asi cuando vaya a ser ingeniero informatcio que me sea mas facil programar. :)
Es decir, tener una base, usare mi manual, y si no entiendo algo, pues lo preguntare. :)

« Última modificación: Hoy a las 21:32 por Seazoux »

Vale, ya se lo que tengo que cambiar, no me hagais ni caso.
Por cierto
Elektro, como setearia una variable sin DIM, para unir la ruta del archivo y el nombre del archivo?
« Última modificación: Hoy a las 21:33 por Seazoux »

Eres la hostia...  x'D

Al menos has entendido lo que hay que hacer sin que te lo digan, concatenar, iba a contestarte que hicieras eso...

¿Que problema tienes con DIM?, ¿Puedes ser más específico?, ¿Dar un código de ejemplo de lo que has intentado y lo que no eres capaz de hacer?,
¿Porque no empiezas por informarte sobre el tipo de declaraciones de las variables? (si no las supieras)

Te recomiendo que declares/setees la variable fuera de la subrutinas, y así adentro del sub ya no necesitarás declararla, sólamente necesitarás modificar el valor/contenido de la variable.

Saludos


Título: Re: Como usar FileSystemWatcher
Publicado por: z3nth10n en 23 Enero 2013, 21:45 pm
No te preocupes, seteo clásico Dim Loquesea As String = "Loque sea"  >:D


Título: Re: Como usar FileSystemWatcher
Publicado por: Eleкtro en 23 Enero 2013, 21:47 pm
Vale, ¿Entonces cual es el problema?

PD: No me lo preguntes todo diréctamente a mi como si fuese un dios de la programación .NET o algo parecido xD, que como me preguntes algo muy chungo quedaré en evidencia jaja.



Título: Re: Como usar FileSystemWatcher
Publicado por: z3nth10n en 23 Enero 2013, 22:09 pm
Vale, ¿Entonces cual es el problema?

PD: No me lo preguntes todo diréctamente a mi como si fuese un dios de la programación .NET o algo parecido xD, que como me preguntes algo muy chungo quedaré en evidencia jaja.



Me puse en modo fixeador y arregle mi problema ya segun los codigos que ya tenia, es lo bueno de los c&p

xD

Vale, estoy buscando lo del BrowserFolderDialog y bien me encontre con la sorpresa de que se necesita VB 2012, me lo tendre que poner y luego ya te cuento.  :)



Ahora si, necesitamos algun que otra ayuda extra, porque lo que te tengo que preguntar es bastante hardcore, descargar archivos (como el wget) y clasificarlos y buscar cadenas de texto para saber las rutas.  :xD



Hay conflicto si se instala el VB 2012 y el VB 2008 juntos?


Título: Re: Como usar FileSystemWatcher
Publicado por: Eleкtro en 23 Enero 2013, 22:26 pm
me encontre con la sorpresa de que se necesita VB 2012, me lo tendre que poner y luego ya te cuento.  :)
Eso te pasa por no hacerme caso, te recomendé el VS2012  :silbar:
PD: Si te gusta el dialogo por defecto de Windows, entonces te recomiendo que te descargues los controles de "Ookii dialogs" y no uses el folderbrowserdialog, así tampoco tendrás que mudarte al VS2012 si no quieres. el diseño dle folderbrowserdialog es un asco, prefiero el del explorador de windows.

lo que te tengo que preguntar es bastante hardcore, descargar archivos (como el wget) y clasificarlos y buscar cadenas de texto para saber las rutas.  :xD

Aquí tienes la solución a la primera duda: [APORTE] Snippets !! (Posteen aquí sus snippets) (http://foro.elhacker.net/net/aporte_snippets_posteen_aqui_sus_snippets-t378770.0.html)
Otra solución es usar WGET desde la APP para descargar el archivo, y en ese mismo post tienes un ejemplo de como se puede ejecutar un proceso...

Lo de clasificarlos no lo entiendo.

Y para saber la ruta no hay que hacer esfuerzo "buscando cadenas", en cualquiera de las dos soluciones que te he propuesto.

Saludos


Título: Re: Como usar FileSystemWatcher
Publicado por: z3nth10n en 23 Enero 2013, 22:42 pm
Eso te pasa por no hacerme caso, te recomendé el VS2012  :silbar:
PD: Si te gusta el dialogo por defecto de Windows, entonces te recomiendo que te descargues los controles de "Ookii dialogs" y no uses el folderbrowserdialog, así tampoco tendrás que mudarte al VS2012 si no quieres. el diseño dle folderbrowserdialog es un asco, prefiero el del explorador de windows.

Aquí tienes la solución a la primera duda: [APORTE] Snippets !! (Posteen aquí sus snippets) (http://foro.elhacker.net/net/aporte_snippets_posteen_aqui_sus_snippets-t378770.0.html)
Otra solución es usar WGET desde la APP para descargar el archivo, y en ese mismo post tienes un ejemplo de como se puede ejecutar un proceso...

Lo de clasificarlos no lo entiendo.

Y para saber la ruta no hay que hacer esfuerzo "buscando cadenas", en cualquiera de las dos soluciones que te he propuesto.

Saludos

Lo de clasificarlos seria por ejemplo, tenemos un listbox, pues todos los resultados del html que acaben por .swf, o por ejemplo una etiqueta <object (meterla como sospechosa) y ya de ahi borrar todos los que no son, como swf de publicidad de google etc... El unico problema es que Kongregate ocula los links asi que no se como se va a hacer xD Es un poco hardcore...  >:D



Por cierto, cual de los 4 Christian Soriano Gonzalez eres tu? xD


Título: Re: Como usar FileSystemWatcher
Publicado por: Eleкtro en 23 Enero 2013, 22:52 pm
tenemos un listbox, pues todos los resultados del html que acaben por .swf, o por ejemplo una etiqueta <object (meterla como sospechosa) y ya de ahi borrar todos los que no son

A eso ya te contesté en tu post de VBS :P, split, replace, substring... ¿Has buscado sobre el htmlagilitypack?.

Citar
El unico problema es que Kongregate ocula los links
En el código fuente de la página no aparecen los enlaces?


Título: Re: Como usar FileSystemWatcher
Publicado por: z3nth10n en 23 Enero 2013, 22:56 pm
A eso ya te contesté en tu post de VBS :P, split, replace, substring... ¿Has buscado sobre el htmlagilitypack?.
En el código fuente de la página no aparecen los enlaces?

Aparecen pero, no usan ninguna extension son un monton de letras y numeros y por cierto, respondeme la ultima question xD

Citar
Por cierto, cual de los 4 Christian Soriano Gonzalez eres tu? xD

Un ejemplo de Kongregate: http://www.minijuegosgratis.com/juegos/cs16/cs16.html

Un saludo.