コード例 #1
0
ファイル: ShareImageTools.cs プロジェクト: zznjobs/Img-Share
        /// <summary>
        /// 上传图片至OneDrive
        /// </summary>
        /// <param name="image">图片文件</param>
        /// <returns></returns>
        public async Task <OneDriveImage> UploadImage(StorageFile image, OneDriveImageGroup group)
        {
            if (_appFolder == null)
            {
                throw new UnauthorizedAccessException("You need to complete OneDrive authorization before you can upload the image");
            }
            var imageFolder = await GetImgSaveFolder();

            var per = await image.GetBasicPropertiesAsync();

            string fileId           = "";
            string name             = "";
            string extension        = Path.GetExtension(image.Path);
            bool   isAutoRename     = Convert.ToBoolean(AppTools.GetLocalSetting(AppSettings.AutoRename, "True"));
            string fileName         = isAutoRename ? Guid.NewGuid() + extension : image.Name.Trim();
            OneDriveStorageFile cre = null;

            try
            {
                // 这里要对文件大小进行判断,以4MB为分水岭,需要用不同的办法上传
                if (per.Size < 4 * 1024 * 1024)
                {
                    using (var stream = await image.OpenReadAsync())
                    {
                        cre = await imageFolder.StorageFolderPlatformService.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting, stream);

                        fileId = cre.OneDriveItem.Id;
                        name   = cre.OneDriveItem.Name;
                    }
                }
                else
                {
                    using (var stream = await image.OpenReadAsync())
                    {
                        cre = await imageFolder.StorageFolderPlatformService.UploadFileAsync(fileName, stream, CreationCollisionOption.ReplaceExisting, 320 * 1024);

                        fileId = cre.OneDriveItem.Id;
                        name   = cre.OneDriveItem.Name;
                    }
                }
                string link = LinkConvert(fileId);
                var    item = new OneDriveImage(name, await AppTools.ConvertFileToImage(image), group, link, fileId);
                return(item);
            }
            catch (Exception)
            {
                return(null);
            }
        }
コード例 #2
0
ファイル: ShareImageTools.cs プロジェクト: zznjobs/Img-Share
        /// <summary>
        /// 修改某图片名
        /// </summary>
        /// <param name="image">图片</param>
        /// <param name="newName">新名字</param>
        /// <returns></returns>
        public async Task <string> RenameImage(OneDriveImage image, string newName)
        {
            if (_appFolder == null)
            {
                throw new UnauthorizedAccessException("You need to complete OneDrive authorization before you can get this file");
            }
            var imageFolder = await GetImgSaveFolder();

            try
            {
                var file = await imageFolder.GetFileAsync(image.ImageName);

                await file.RenameAsync(newName);

                return(newName);
            }
            catch (Exception)
            {
                return(image.ImageName);
            }
        }
コード例 #3
0
ファイル: ShareImageTools.cs プロジェクト: zznjobs/Img-Share
        /// <summary>
        /// 删除图片
        /// </summary>
        /// <param name="image">图片信息</param>
        /// <returns></returns>
        public async Task <bool> DeleteImage(OneDriveImage image)
        {
            if (_appFolder == null)
            {
                throw new UnauthorizedAccessException("You need to complete OneDrive authorization before you can upload the image");
            }
            var imageFolder = await GetImgSaveFolder();

            var file = await imageFolder.StorageFolderPlatformService.CreateFileAsync(image.ImageName, CreationCollisionOption.OpenIfExists);

            if (file != null)
            {
                try
                {
                    await file.DeleteAsync();
                }
                catch (Exception)
                {
                    return(false);
                }
            }
            return(true);
        }