TempFolder Cleaner( Mi primera app con c#)

Desarrollo de aplicaciones de escritorio C#, c++, Java, Net, VB... y todos los frameworks y tecnologías relacionadas co este tipo de aplicaciones.
Wenas compañeros , aquí va mi primera app con VS y c# , la verdad las diferencias con ams son tan abismales en cuestiones tan simples como carga y configuración y opciones en controles que no pienso realizar ninguna app un poco seria en ams , no por eso voy a desacreditar autoplay al que le debo muy buenos momentos y este foro , seguire aportando aqui todo la ayuda que pueda sobre ams y demas , este aprendizaje tambien me servira para hacer aportes para autoplay como dll , plugins y demas , desde C# se puede sacar de todo..
sin mas royos aquí va la aplicación , es un gestor de archivos temporales en principio pero se puede gestionar cualquier otro directorio que queramos , utiliza algún filtrillo para borrar archivos , info sobre los mismos y dos xorradas mas , para ir aprendiendo sobre el tema es un principio, ay me direis que os parece ;):

Captura:

Imagen

Source:
using System;
using System.ComponentModel;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;


namespace listBox
{
public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();


}


private void buttonFolder_Click(object sender, EventArgs e)
{
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{

Ruta.Text = folderBrowserDialog1.SelectedPath;
GetFilesFromDirectory(Ruta.Text);



}

}


private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{


}

private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
object o = listBox1.SelectedItem;
if (o is LBItem)
{
try
{
LBItem lbi;
lbi = (LBItem)o;

Process.Start(lbi.Data);

}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}

}
}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//string todos = "All";
if (Ruta.Text != "")

{

listBox1.Items.Clear();
dataGridView1.Rows.Clear();

DirectoryInfo dir = new DirectoryInfo(Ruta.Text);
FileInfo[] files = dir.GetFiles(sExtension());

listBox1.BeginUpdate();

foreach (FileInfo f in files)
{
string[] row0 = { f.Name, f.Extension, f.FullName, f.Length.ToString(), f.Attributes.ToString(), f.CreationTime.ToString(), f.LastAccessTime.ToString(), f.LastWriteTime.ToString() };

listBox1.Items.Add(new LBItem(f.Name, f.FullName));
dataGridView1.Rows.Add(row0);

}
if (comboBox1.SelectedItem.ToString() == "All")
{
string[] dirs = Directory.GetDirectories(Ruta.Text);
foreach (string folder in dirs)
{
if (Directory.Exists(folder))
{
string curdir = Path.GetFileNameWithoutExtension(folder);
listBox1.Items.Add(new LBItem(curdir, folder));
}
}
}

listBox1.EndUpdate();
}


}

private void buttonDelete_Click(object sender, EventArgs e)
{

if (MessageBox.Show("Delete files?", "Delete Files Selected ? ", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{

if (listBox1.SelectedItem == null)
{

if (comboBox1.SelectedItem.ToString() == "All")
{
//MessageBox.Show(comboBox1.SelectedText);
DirectoryInfo dir = new DirectoryInfo(Ruta.Text);
FileInfo[] files = dir.GetFiles();
foreach (FileInfo f in files)
try
{
{
f.Delete();

}
DirectoryInfo[] dirs = dir.GetDirectories();
foreach (DirectoryInfo folder in dirs)
{
folder.Delete(true);
}
}
catch (System.IO.IOException ex)
{
MessageBox.Show(ex.Message);
break;

}
}
else
{
string[] fileList = Directory.GetFiles(Ruta.Text, "*" + comboBox1.SelectedItem.ToString());
foreach (string fileName in fileList)
try
{
File.Delete(fileName);
}
catch (IOException ex)
{
MessageBox.Show(ex.Message);
break;

}
}
}
else
{
for (int i = listBox1.SelectedItems.Count - 1; i >= 0; i--)
try
{
LBItem lbi;
lbi = (LBItem)listBox1.SelectedItems;

if (File.Exists(lbi.Data))
{
File.Delete(lbi.Data);
}
else
{
Directory.Delete(lbi.Data, true);
}
}
catch (System.IO.IOException ex)
{
MessageBox.Show(ex.Message);
break;

}

}
string Title = "Files deleted successfull!";
string Texto = "-----------------------------------";

notifyIcon1.ShowBalloonTip(2000, Title,Texto, ToolTipIcon.Info);

}
else
{
MessageBox.Show("No files selcted");
}

GetFilesFromDirectory(Ruta.Text);
}


// carga del listbox desde un directorio
private void GetFilesFromDirectory(string fullDirectoryPath)
{

comboBox1.Items.Clear();
listBox1.Items.Clear();
comboBox1.Items.Add("All");
DirectoryInfo dir = new DirectoryInfo(fullDirectoryPath);
FileInfo[] files = dir.GetFiles();

listBox1.BeginUpdate();
comboBox1.BeginUpdate();
dataGridView1.Rows.Clear();
foreach (FileInfo f in files)
{
string[] row0 = { f.Name, f.Extension, f.FullName, f.Length.ToString(), f.Attributes.ToString(), f.CreationTime.ToString(), f.LastAccessTime.ToString(), f.LastWriteTime.ToString() };

listBox1.Items.Add(new LBItem(f.Name, f.FullName));
dataGridView1.Rows.Add(row0);

if (comboBox1.FindString(f.Extension) == -1)
{

comboBox1.Items.Add(f.Extension);
}
}
comboBox1.EndUpdate();
string[] dirs = Directory.GetDirectories(fullDirectoryPath);
foreach (string folder in dirs)
{
if (Directory.Exists(folder))
{
string curdir = Path.GetFileNameWithoutExtension(folder);
listBox1.Items.Add(new LBItem(curdir, folder));
}
}
listBox1.EndUpdate();
if (fullDirectoryPath != "")
Ruta.Text = fullDirectoryPath;
buttonDelete.Enabled = true;
}


private void Form1_Load(object sender, EventArgs e)
{
GetFilesFromDirectory(Path.GetTempPath());
}


//abrir url...
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
try
{
VisitLink();
}
catch (Exception ex)
{
MessageBox.Show("Unable to open link that was clicked.");
}
}


private void VisitLink()
{

linkLabel1.LinkVisited = true;

Process.Start("http://www.amsspecialist.info/index.php");
}


private void dataGridView1_CellMousseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
try
{

string spath = Convert.ToString(dataGridView1.CurrentRow.Cells[2].Value);
Process.Start(spath);

}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

}

// clase para añadir un item y una data en los listbox
class LBItem
{
public string texto;
public string Data;

public LBItem(string c, string v)
{
texto = c;
Data = v;

}
public override string ToString()
{
return texto;

}

}

public string sExtension()
{
string extension;
// string todos = "All";

if (comboBox1.SelectedItem != null)
{

if (comboBox1.SelectedItem.ToString() == "All")
{
extension = "*.*";
}
else
{
extension = "*" + comboBox1.SelectedItem.ToString();
}
}
else
{
// Aqui deberías asignar algún valor a extension en caso de que el combo no tenga un item seleccionado
extension = "*.*";
}

return extension;
}

private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{

}

private void Ruta_MouseDoubleClick(object sender, MouseEventArgs e)
{
Process.Start(Ruta.Text);
}






}
}


Descarga TemFolder Cleaner:

HIDE: ON
Hidebb Message Hidden Description
voy a echarle un ojo, os recibo con porros y alcohol en el lado oscuro!
Good Iam Comming In C# Programming its Advanced
Probando.... gracias por el aporte!
ese programa creado, sirve para monitorear los archivos que se encuentran en la carpeta temp...

Me pregunto si se puede aser un codigo para que monitoreee en tiempo real los procesos que se estan ejecutando a tiempo real,,, es como decir crear un.. mmm Anti Hacker.. que se ejecute.. en modo silencioso y verifike si un ejecutable se abre y que ese ejecutable sea un hacker y lo sierre automaticamente??!!!!... (wuau que larga mi pregunta) :SOS:
danielpz escribió:ese programa creado, sirve para monitorear los archivos que se encuentran en la carpeta temp...

Me pregunto si se puede aser un codigo para que monitoreee en tiempo real los procesos que se estan ejecutando a tiempo real,,, es como decir crear un.. mmm Anti Hacker.. que se ejecute.. en modo silencioso y verifike si un ejecutable se abre y que ese ejecutable sea un hacker y lo sierre automaticamente??!!!!... (wuau que larga mi pregunta) :SOS:
Hacerse seguro se puede XD ,pero yo estoy empezando con esta historia y después del 1 viene el 2 , si te ves capacitado... tira palante! ;)
rafaxplayer escribió:
danielpz escribió:ese programa creado, sirve para monitorear los archivos que se encuentran en la carpeta temp...

Me pregunto si se puede aser un codigo para que monitoreee en tiempo real los procesos que se estan ejecutando a tiempo real,,, es como decir crear un.. mmm Anti Hacker.. que se ejecute.. en modo silencioso y verifike si un ejecutable se abre y que ese ejecutable sea un hacker y lo sierre automaticamente??!!!!... (wuau que larga mi pregunta) :SOS:
Hacerse seguro se puede XD ,pero yo estoy empezando con esta historia y después del 1 viene el 2 , si te ves capacitado... tira palante! ;)
Mmmm interesante respuesta mi estimado fafaxplayer...., lo curioso es que las respondes sutilmente, eso me agrada, eres un dicto colega de programacion...., bueno, veremos con el tiempo que para sorpresa tuya de 4 o 5 enves de 2 o 1... :), si o no? :lol:
danielpz aprende a escribir o instálate un corrector ortográfico por que me parece una locura que en tres lineas metas esas cagadas.
thanks
que buena noticia , lastima que no pueda instalar VB en mi pc (un tarro :cabreado: ), pero listo para armar uno nuevo ,solo falta $$ :lol: XD

bueno sin nada ma que decir

:pc: adios XDD
muy bueno
Thank you
thank
thanx
Good

Vielen Danke :friends: :friends:

observando!!

En cuanto tiempo te la aventaste Rafa? Me refiero al estudio del Sharp...

Saludos viejo ;)
Pabloko escribió:voy a echarle un ojo, os recibo con porros y alcohol en el lado oscuro!
Espero te sobre algo para cuando llegue hasta alla :lol:

jejejej poco , todos los lenguajes tienen la misma base , aunque mi nivel es muy principiante porque lo deje , estoy muy metido en java - android ahora.