Urgente: Escritura en fichero

Buenas,
Mi problema es el siguiente necesito realizar una aplicación en mi emulador móvil que cuando hagas click en un botón lea un fichero que se encuentra en la carpeta My Documents de Windows Mobile, el código que he escrito es el siguiente:
private void button1_Click(object sender, EventArgs e)
{
const string fic = @"\\My documents\Personal\prueba.txt";
string texto = "Prueba de escritura desde el dispositivo movil.";
System.IO.StreamWriter sw = new System.IO.StreamWriter(fic, true);
sw.WriteLine(texto);
sw.Close();
}
Y a pesar que este mismo programa hecho como clase c# normal funciona correctamente, cuando lo ejecuto desde el emulador móvil me da el siguiente error:
en System.IO._Error.WinIOError()
en System.IO.FileStream..ctor()
en System.IO.FileStream..ctor()
en DeviceApplication3.Form1.button4_Click()
en System.Windows.Forms.Control.OnClick()
en System.Windows.Forms.Button.OnClick()
en System.Windows.Forms.Control._InternalWnProc()
en Microsoft.AGL.Forms.EVL.EnterMainLoop()
en System.Windows.Forms.Application.Run()
en DeviceApplication3.Program.Main()
¿Sabes qué estoy haciendo?
Saludos y gracias por tú ayuda de antemano.
Respuesta
1
Recuerda que el Compact Framework no soporta todas las características del framework normal así que lo que te sucede es normal, yo colocaría un sq. Flush antes del sw. Close para asegurar que se graben los datos.
Lo otro a revisar es si la carpeta @"\\My documents\Personal" realmente existe en tiu dispositivo en el emulador.
Buenas,
Y gracias por tú tiempo, la ruta existe en el emulador porque puede leer el fichero desde emulador con Windows Mobile 6.0, el tema de colocar sq.Flush tampoco funciona porque he estado depurando y me peta en la siguiente linea:
System.IO.StreamWriter sw = new System.IO.StreamWriter(fic, true);
Supongo que será un bug.
¿Te se ocurre alguna cosa más?
Saludos y gracias por tú tiempo de nuevo.
Yo no recuerdo muy bien, pero la manera como estas abriendo el fichero, es en modo Append, o sea que escriba al final, o en Modo Open que sobreescribe el fichero, si es modo Open entonces debes decirle que sobrescriba el fichero, quizás ese es el motivo de tu error.
Buenas,
La manera en la que abro el fichero es en modo Append escriba al final. En realidad esto es una "chapuza" porque no me funcionaba otra prueba. A ver si me puedes ayudar con la idea inicial. La cuestión es que tengo una aplicación móvil que lo ideal es que genera un sms como petición y la cual recibiría un sms como respuesta. Y el problema yo tengo una capa lógica que debe tratar el mensaje y enviar al dispositivo la respuesta pero no se como hacer que llevo dicho sms a mi capa lógica. En resumen como puedo hacer un programa que reciba sms, trate y envíe sms.
Saludos y gracias como siempre
PD: Si quieres que cierre esta pregunta y abra otra me lo comentas.
Si estas trabajando con el CF 2.0 me parece que ya hay API para el manejo de SMS, lo que no sabría decirte es cual es la clase o el comando para ello.
Y si lo estas haciendo ene l emulador no creo que puedas realizar esta prueba.
Buenas,
Hay una cosa que no entiendo, imaginate que consigo desde el emulador configurará el celular emulator para poder simular el envío de sms, es decir, consigue enviar sms. Como se lo envío a mi aplicación que implementa mi capa lógica, es decir, como recibo en un proyecto de biblioteca de clases el sms enviado por el móvil para poder tratarlo. Este es el nexo que me falta, no se si existe alguna aplicación para esto.
Saludos, sino me he explicado con claridad no dudes en comentamerlo.
No creo que en una biblioteca de clases puedas hacerlo, implementalo en un formulario que llame una clase de tu biblioteca de clases de acuerdo a lo que necesites realizar.
Buenas,
Siento ser pesado, creo que no me explico bien, sigo sin entender como llegaría a dicho formulario el sms. Es decir, según yo entiendo cuando envías un sms tienes que ponerle un número de teléfono, que número de teléfono tiene mi formulario.
Saludos como siempre.
¿Cómo recibes o a que objeto del framework de CF.NET estas accediendo para leer el sms?
Buenas,
El sms lo creo yo en base a una información que el Usuario rellena en un form de la aplicación móvil. Entonces cuando yo llamo a la función enviar sms imaginate que fuera así el código:
//Parte Movil
sendSMS(MENSAJE, QUIEN QUIERO QUE RECIBA ESE MENSAJE)
sendSMS("Que dia es hoy?", quiero que reciba el mensaje mi clase HolaMundo);
//Parte Servidora o de negocio
//recibe el sms y hace
publis String loadSMSrecibido();
if(tengo mensajes recibidos)
String mensajeRecibido=loadSMSRecibido();
if(mensajeRecibido=="Que dia es hoy?")
sendSMS(Jueves,quiero que reciba el mensaje mi form de la parte movil form1);
Saludos, no se si con este te aclaro mi propósito, al final quiero que mi capa de dominio interatue con mi emulador móvil.
En algún punto de tu aplicación o sea de tu Interfaz de usuario, sea a través de un botón o de un evento ( se me ocurre) lees o sabes que acaba de llegar un SMS, de allí se lo pasas a tu capa de lógica.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas