本文主要示范在窗体中使用文件上传。
1. 在窗体中判断客户端文件夹是否存在文件
调用Client.File.Exists(url,FileExistsHandler)或Client.File.Exists(resourceId,resourcePath,FileExistsHandler)方法即可;可参考 SmoTurtorials
2. 在窗体中进行服务端文件下载
调用Client.File.Download(url)或Client.File.Download(resourceId,resourcePath)方法即可;
代码如下:
C#:
//第一个参数lblFile.BindDisplayValue.ToString() 为文件名称
//第二个参数MobileResourceManager.DefaultDocumentResourceName为文件路径,指\Resources\Document
this.Client.File.Exists(lblFile.BindDisplayValue.ToString(), MobileResourceManager.DefaultDocumentResourceName, (obj, args) => {
if (args.Exists == false)
{
//文件下载
this.Client.File.Download(lblFile.BindDisplayValue.ToString(), MobileResourceManager.DefaultDocumentResourceName, (obj1, args1) => {
if (args1.isError == true)
{
throw new Exception(args1 .error );
}
});
}
else
{
this.Form.Toast("文件已存在,请打开!");
}
});
在窗体中进行打开app下载的文件
调用Client.File.Open(url)或Client.File.Open(resourceId,resourcePath)方法即可;
代码如下:
C#:
//第一个参数lblFile.BindDisplayValue.ToString() 为文件名称
//第二个参数MobileResourceManager.DefaultDocumentResourceName为文件路径,指\Resources\Document
this.Client.File.Open(lblFile.BindDisplayValue.ToString(), MobileResourceManager.DefaultDocumentResourceName, (obj1, args1) => {
if (args1.isError == true)
{
throw new Exception(args1 .error );
}
});
在窗体中删除app中下载的文件
调用Client.File.Delete(url)或Client.File.Delete(resourceId,resourcePath)方法即可;
代码如下:
C#:
//第一个参数lblFile.BindDisplayValue.ToString() 为文件名称
//第二个参数MobileResourceManager.DefaultDocumentResourceName为文件路径,指\Resources\Document
this.Client.File.Delete(lblFile.BindDisplayValue.ToString(), MobileResourceManager.DefaultDocumentResourceName, (obj1, args1) => {
if (args1.isError == true)
{
throw new Exception(args1 .error );
}
else
{
ListViewRow row = this.Tag as ListViewRow;
((FileUp.frmFileDetail)(this.Form)).RemoveRow(row);//删除当前列表行项
this.Form.Toast("文件已删除!");
}
});
在窗体中将app中下载的文件上传到服务端文件夹
调用Client.File.Upload()方法即可;
代码如下:
C#:
this.Client.File.Upload((obj, args) => {
if (args.isError == false)
{
try
{
args.SaveFile(args.ResourceID, MobileResourceManager.DefaultDocumentPath);
this.Form.Toast("上传成功!", ToastLength.SHORT);
}
catch (Exception ex)
{
this.Form.Toast(ex.Message, ToastLength.SHORT);
}
}
});
在窗体中显示app中下载文件清单
调用Client.File.List() 方法即可;
代码如下:
C#:
this.Client.File.List((obj, args) =>
{
Smobiler.Core.RPC.FileListArgs.FileListData[] filelist = args.Lists;
});