Como verificar con C# si un archivo existe en un servidor remoto, sin descargar el archivo

.NET logo

Con este codigo de C# se puede verificar si un archivo existe en un servidor remoto, sin bajarlo.

var request = WebRequest.Create(new Uri("http://www.site.com/file1.zip"));

request.Method = "HEAD";

try
{
	var response = request.GetResponse();
	Console.WriteLine("{0} - {1}", response.ContentLength, response.ContentType);
}
catch (WebException ex)
{
	var resp = (HttpWebResponse) ex.Response;

	if (resp.StatusCode == HttpStatusCode.NotFound)
	{
		Console.WriteLine("File does not exist");
	}

}

La diferencia es el uso del metodo HEAD en lugar de POST o GET. El metodo HEAD regresa exactamente los mismos Headers que un request tipo GET, con la excepcion de que no transfiere el message-body, o en este caso, el contenido del archivo en bytes. Este codigo funciona para verificar la existencia de archivos fisicos, o URLs virtuales (ya que no siempre un URL corresponde a un archivo fisico).

Una vez que obtenemos una respuesta, podemos verificar varias propiedades del archivo, como el tamaño (ContentLength) o el tipo (ContentType). Si el archivo no existe, el Framework va a lanzar una WebException, de la cual tomamos la propiedad Response y le podemos hacer un cast al tipo HttpWebResponse, para poder verificar el error especifico HTTP que el servidor arrojó. Si el codigo es 404, significa que el archivo no existe.

Espero les sirva.

Windows XP Mode y VirtualPC no se minimizan a veces

Microsoft VirtualPC

Últimamente he trabajado con Virtual Machines en el trabajo, en lugar de instalar todos los programas requeridos para desarrollar directamente en mi instalacion de Windows 7  en la laptop del trabajo.

Como casi todo el mundo, trabajamos con la Virtual Machine (Windows Virtual PC) maximizada, y en ocasiones cambiando la vista al sistema operativo principal (Windows 7)  para checar el Outlook o algun otro programa. El problema es que muchas veces, al hacer click en el boton para minimizar la ventana de VirtualPC, la ventana se minimizaba pero inmediatamente se volvia a maximizar, sin permitirnos salir de la ventana maximizada.

Despues de un rato de investigación, nos dimos cuenta que solo pasaba cuando la aplicacion activa en el sistema operativo original era Excel. Es decir, si teniamos Excel abierto en Windows 7, cambiabamos el foco a la ventana (maximizada) de VirtualPC, y luego queriamos minimizar VirtualPC, automaticamente la ventana de VirtualPC se volvia a maximizar.

Encontramos este post de Technet de Microsoft – XP Mode Full Screen does not minimize -, en el que otras  personas tambien dicen tener el mismo problema, y también coincidieron que el problema solo se presenta con Excel, y que pasa tanto con el Windows XP Mode de Windows 7, o con instalaciones regulares de Windows VirtualPC también.

Incluso alguien detalla una posible solución que implica cambiar los settings de Visual Performance de la Virtual Machine, cosa que no probamos, solo queria detallar el workaround simple que es evitar que Excel sea la aplicación activa al momento de regresar a la ventana de VirtualPC.

Espero les sirva.

Tip de Mudanza a Estados Unidos – Usar una tarjeta American Express

USA Flag

Esta es una de las cosas que mas me hubiera gustado saber.

Por el titulo del post, no me refiero solamente a utilizar una tarjeta de credito American Express cuando te mudes a Estados Unidos. Me refiero a que, si en este momento vives en Mexico y no tienes una tarjeta American Express, aunque no estes considerando cambiarte a vivir a otro pais, aun asi consigue una AmEx.

Personalmente, nunca habia considerado usar una tarjeta AmEx porque tenia la idea que su CAT era muy alto, y ademas estaba muy contento con las tarjetas de credito de Banorte. El problema es que, hasta donde tengo entendido, con la mayoria de los bancos simplemente no es posible transferir tu historial crediticio a Estados Unidos. Y digo la mayoria de los bancos, porque aunque algunos bancos mexicanos son dueños de, o tienen acuerdos con bancos de Estados Unidos, no necesariamente tendran sucursales en el pais o ciudad al que te vayas a vivir, y tampoco es seguro que el mismo banco te permita hacer la transferencia de historial. American Express si te permite transferir tu cuenta (e historial crediticio) siempre y cuando ellos tienen operaciones en el pais al que te mudes, y tu cuenta tenga mas de un año de antiguedad.

Ahora, ¿por que es bueno  (y practicamente necesario) tener un historial crediticio en Estados Unidos? Porque en Estados Unidos, si no cuentas con historial crediticio, casi todas las empresas de servicios post-pago (como las de telefonia, energia, bancos, etc) obligan a dejar una cantidad de efectivo relativamente alta como deposito para darte sus servicios. Puede que eso no sea un problema para uno o dos servicios, pero cuando te cambias a un pais nuevo, generalmente tienes que contratar varios servicios, y eso puede resultar en perder temporalmente mucho efectivo en un concepto innecesario como depositos.

Es por esto que menciono que conviene conseguir una AmEx desde ahora, incluso si no estas considerando irte a vivir a otro pais. Si la obtienes en este momento, aunque solo la uses para compras menores, el tener un buen historial crediticio con esa institucion te permitira que si eventualmente te mudas a otro pais, podras transferir tu historial crediticio y seguramente no tendras casi ningun problema en cuestion de tramites relacionados con credito. Ademas te permitira aplicar a las tarjetas de credito promocionales de varias tiendas que las ofrecen (como Best Buy, Macys, etc), que sin un historial crediticio, no te las otorgarian.

Como comentario adicional, al momento de sacar mi American Express, me di cuenta que tienen muy buenos programas de recompensas, principalmente el asegurar tus compras o reservaciones pagadas con la tarjeta.

Aclaracion Importante: las empresas que revisan el historial crediticio a la hora de hacer un contrato no se basan en una tarjeta de credito. Lo hacen a traves de tu numero de seguro social en Estados Unidos (Social Security Number o SSN). Incluso despues de transferir tu historial crediticio a Estados Unidos con American Express, todavia necesitas tramitar tu SSN y relacionarlo con tu nueva AmEx en Estados Unidos.

Espero les sirva.

Nuevos posts

No he podido postear nada debido a la mudanza a USA. Pronto hare una serie con tips para la gente que se muda a USA para trabajar. Debido a que ultimamente he trabajado con Sharepoint, probablemente haga tambien algunos posts sobre eso.

1 3 4 5 6 7 31  Scroll to top