尝试保存由FileOpenPicker选择并由FileSavePicker保存的图片副本

时间:2018-01-04 06:00:37

标签: c# uwp windows-store-apps

这是我到目前为止的代码,它打开图片并尝试保存它 关于它为什么不起作用的任何信息都会非常感谢。

        FileOpenPicker openPicker = new FileOpenPicker();
        openPicker.ViewMode = PickerViewMode.Thumbnail;
        openPicker.SuggestedStartLocation =PickerLocationId.PicturesLibrary;
        openPicker.FileTypeFilter.Add(".jpg");
        openPicker.FileTypeFilter.Add(".jpeg");
        openPicker.FileTypeFilter.Add(".png");

        StorageFile file = await openPicker.PickSingleFileAsync();
        if (file != null)
        {



            FileSavePicker savePicker = new FileSavePicker();
            savePicker.SuggestedStartLocation = 
             PickerLocationId.PicturesLibrary;
            savePicker.FileTypeChoices.Add("jpeg image", new List<string>() 
            { ".jpg" });
            savePicker.SuggestedFileName = "Photo";

            string token = Windows.Storage.AccessCache.StorageApplicationPermissions.FutureAccessList.Add(file);
            StorageFile SaveFile = await StorageApplicationPermissions.FutureAccessList.GetFileAsync(token);

            StorageFile savefile = await savePicker.PickSaveFileAsync();

            if (SaveFile != null)
            {
                 await FileIO.WriteTextAsync(SaveFile, SaveFile.Name);
            }

        }

1 个答案:

答案 0 :(得分:0)

您将打开的文件存储到FutureAccessList,然后立即将其检索为SaveFile变量。在您的下方创建一个saveFile,我想这是您想要使用的内容,但在WriteTextAsync方法中,您将SaveFile作为目标,而不是saveFile

你绝对应该改进你的命名约定,只有两个不同的外壳变量非常容易出错。此外,局部变量应始终以小写字母开头。