2012-04-16 15 views
12

Tengo una aplicación Firemonkey de Windows que usa TClientDatasets para cargar archivos de datos XML que estoy intentando poner a trabajar en OS X. Los archivos de datos se almacenan en un archivo compartido de Windows para que varios usuarios puedan acceda a los mismos datos (aquí no me preocupan los problemas de concurrencia).TClientDataset en la aplicación OS X Firemonkey

Parece que no puedo obtener la versión mac cargando los archivos desde el servidor, parece preestablecer automáticamente la ruta local a lo que configuro en la propiedad TClientDataset.Filename.

Si copio los archivos de datos en el paquete de la aplicación antes de iniciar la aplicación, funciona perfectamente, así que pensé que trataría de copiar los archivos en código, pero tampoco puedo hacerlo funcionar, puede ' t encuentra los archivos en el servidor.

TFile.Exists('smb://<servername>/<path>/Data.xml'); 

Devuelve FALSE a pesar de que puedo verlo en Finder.

Idealmente, preferiría cargar los archivos del recurso compartido en lugar de copiarlos al inicio y volver a copiar al salir.

+3

Supongo que no tiene nada que ver con TClientDataSet. El problema parece ser que no puedes ver el archivo compartido desde tu aplicación. ¿Sabe que en Mac los nombres de los archivos distinguen mayúsculas de minúsculas? –

Respuesta

0

El mayor problema es que Mac OS no asigna automáticamente su carpeta de red a una carpeta local, Windows Virtualy hace esto por usted incluso si no mapea su unidad para que todos los archivos se copien temporalmente a un espacio virtual y eso por qué puede usarlo directamente desde su aplicación en Windows sin asignar la carpeta de red.

Así que para resolver ese problema que tendrá que montar su parte a alguna carpeta usando algo como esto:

mkdir/Volumes/WinShareName montaje WinShareName "CIFS: // servidor/acción"

Así después de eso, podría usar TFile.Exists ('/ Volumes/WinShareName/Data.xml'); O cárguelo directamente de clientedataset.loadfromfile.

No pude probarlo porque ahora no tengo una máquina mac, pero esa es la idea principal.

ACTUALIZADO ---- Se puede ver más ejemplos sobre cómo montar un controlador de red here

0

que tenía un problema similar y trabajado a cabo mediante la creación de un servidor TCP en el lado de las ventanas y un cliente TCP en del lado del cliente ... y enviar el archivo xml a través de las transmisiones ... funciona como un amuleto ...