Hola, para lo del tamaño de los archivos te dejo el siguiente ejemplo, lo tengo hecho para un archivo especifico, pero es facil reemplazarlo por el seleccionado en un FileListBox por ejemplo...
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//Creación de un tipo de datos donde se contendrán los atributos de un fichero
WIN32_FIND_DATA* dat = new WIN32_FIND_DATA();
//Busco el fichero en concreto.
HANDLE buscar = FindFirstFile("d:\\avathar.bmp",dat);
//Si existe el fichero.
if (buscar != INVALID_HANDLE_VALUE)
{
float dato =dat->nFileSizeLow;
ShowMessage(FloatToStr(dato) +" bytes." );
}
else
{
ShowMessage("No Existe el fichero");
}
}
Ahora para ejecutar el archivo con la aplicacion que tiene asociada en windows, puedes usar ShellExecute, te dejo un ejemplo:
String sRuta = "c:\\documento.doc";
ShellExecute(NULL,"open",sRuta.c_str(),NULL,NULL,SW_SHOWDEFAULT);
Haber si esto te ayuda un poco.
Saludos!