Ejemplo n.º 1
0
        /// <summary>
        /// 创建视图模型项
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        private DeviceSyncItem CreateSyncItemViewModel(DeviceSyncItem item)
        {
            var viewItem = new DeviceSyncItem
            {
                NameView   = item.NameView,
                FolderView = item.FolderView,
                SourceView = item.SourceView
            };

            if (null != item.ImgByte)
            {
                try
                {
                    //有真实预览图则显示预览图
                    viewItem.BitImg = ImageUtil.GetBitmapImage(item.ImgByte);
                    item.ImgByte    = null;
                    return(viewItem);
                }
                catch (Exception) { }
            }
            //没有预览图/获取失败则根据文件类型显示默认图标
            switch (item.ContentType)
            {
            case SyncContentType.AUDIO: viewItem.BitImg = ApplicationConstant.GetDefaultAudioIcon(); break;

            case SyncContentType.IMAGE: viewItem.BitImg = ApplicationConstant.GetDefaultImageIcon(); break;

            case SyncContentType.VIDEO: viewItem.BitImg = ApplicationConstant.GetDefaultVideoIcon(); break;

            case SyncContentType.OTHER: viewItem.BitImg = ApplicationConstant.GetDefaultFileIcon(); break;
            }
            return(viewItem);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 创建同步项
        /// </summary>
        /// <param name="fileName">文件名称</param>
        /// <param name="folderPath">文件路径</param>
        /// <param name="source">源 1 PC, 2 移动设备</param>
        /// <param name="device">设备</param>
        /// <param name="driverName">设备驱动</param>
        /// <returns></returns>
        private DeviceSyncItem CreateSyncItem(string fileName, string folderPath, SyncDeviceType source, MediaDevice device, string driverName)
        {
            //判断文件是否存在于设备
            var item = new DeviceSyncItem()
            {
                NameView   = fileName,
                SourceView = source,
                FolderView = folderPath,
            };
            var mediaType = FileUtil.GetMediaTypeByName(fileName);

            item.ContentType = mediaType;
            if (mediaType == SyncContentType.IMAGE || mediaType == SyncContentType.VIDEO)
            {
                if (source == SyncDeviceType.PHONE)
                {
                    var fileInfo = device.GetFileInfo(Path.Combine(driverName, folderPath, fileName));
                    var imgByte  = GetMediaFileThumbnail(fileInfo);
                    if (null != imgByte)
                    {
                        item.ImgByte = imgByte;
                    }
                }
                else
                {
                    var imgByte = ImageUtil.CreateThumbnail(Path.Combine(folderPath, fileName), 100, 100);
                    item.ImgByte = ImageUtil.ImageToByteArray(imgByte);
                }
            }
            if (mediaType == SyncContentType.AUDIO)
            {
                //PC文件直接读取
                if (source == SyncDeviceType.PC)
                {
                    item.ImgByte = FileUtil.GetAudioFileAlbum(Path.Combine(folderPath, fileName));
                }
                else
                {
                    //手机文件, 先复制到临时文件夹, 再读取
                    var winTempFolder = Path.GetTempPath();
                    if (!string.IsNullOrEmpty(winTempFolder))
                    {
                        var tempFullPath = Path.Combine(winTempFolder, fileName);
                        if (System.IO.File.Exists(tempFullPath))
                        {
                            //已存在则直接读取
                            item.ImgByte = FileUtil.GetAudioFileAlbum(tempFullPath);
                        }
                        else
                        {
                            //不存在则复制
                            var fileInfo = device.GetFileInfo(Path.Combine(driverName, folderPath, fileName));
                            fileInfo.CopyTo(tempFullPath);
                            item.ImgByte = FileUtil.GetAudioFileAlbum(tempFullPath);
                        }
                    }
                }
            }
            return(item);
        }