6

ローカル ストレージのファイルを削除しようとしましたが、成功しませんでした。まさに、写真を撮った後、例えばボタンで削除したい。しかし、ボタンをクリックすると、アプリのバグが発生し、「アクセスが拒否されました」というメッセージが表示されます。

StorageFile でファイルを取得した後、単純な Delet.Async() を使用します。

    private async void delete_click(object sender, RoutedEventArgs e)
    {

            StorageFile filed = await ApplicationData.Current.LocalFolder.GetFileAsync("myImg.jpg");
            if (filed != null)
            {
                await filed.DeleteAsync();

            }


    }
4

3 に答える 3

7

以下のコードを試して、うまくいくかどうかを確認してください。

    private async void takephoto_click(object sender, RoutedEventArgs e)
    {


        var ui = new CameraCaptureUI();
        ui.PhotoSettings.CroppedAspectRatio = new Size(4, 3);
        var file = await ui.CaptureFileAsync(CameraCaptureUIMode.Photo);

        if (file != null) 
        {
           // store the file
           var myFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("myImg.jpg");
           await file.MoveAndReplaceAsync(myFile);

           // display the file
           var bitmap = new BitmapImage();
           bitmap.SetSource(await file.OpenAsync(FileAccessMode.Read));
           Photo.Source = bitmap;
        }



    }

    private async void delete_click(object sender, RoutedEventArgs e)
    {
        StorageFile filed = await ApplicationData.Current.LocalFolder.GetFileAsync("myImg.jpg");
        if (filed != null)
        {
            await filed.DeleteAsync();
        }

        StorageFile filefound = await ApplicationData.Current.LocalFolder.GetFileAsync("myImg.jpg");

        if (filefound != null)
        {
           // do something here 
        }
    }
于 2013-02-22T07:09:58.730 に答える
0
    /// <summary>
    /// Delete the indicated application file
    /// </summary>
    /// <param name="strFilePathName">The file path name to delete</param>
    /// <returns>True, if successful; else false</returns>
    public async static Task<bool> DeleteAppFile(string strFilePathName)
    {
        try
        {
            StorageFile fDelete = null;

            if (!strFilePathName.Equals(""))
            {
                fDelete = await ApplicationData.Current.LocalFolder.GetFileAsync(strFilePathName);
                if (fDelete != null)
                {
                    try
                    {
                        await fDelete.DeleteAsync();
                    }
                    catch (Exception ex)
                    {
                        AFFECTS.App.ShowMessage(true, "Error", "DeleteAppFile {" + strFilePathName + "}", ex.Message);

                        return false;
                    }

                    return true;
                }
            }
            else
                AFFECTS.App.ShowMessage(true, "Error", "DeleteAppFile", "File path name is empty.");
        }
        catch (Exception ex)
        {
            AFFECTS.App.ShowMessage(true, "Error", "DeleteAppFile {" + strFilePathName + "}", ex.Message);
        }

        return false;
    }
于 2015-06-13T15:33:15.283 に答える
0

ローカルストレージからファイルを削除する際に同じ問題が発生しています。ローカルストレージに異なる名前で保存されているファイルがたくさんあるので、他のファイルを削除する方法。上記の場合、削除するファイル名をハードコーディングしています。

StorageFile filefound = await ApplicationData.Current.LocalFolder.GetFileAsync("myImg.jpg"); myImg.jpg ユーザーの代わりに他のファイルを削除したい場合、ユーザーはどのように削除するか

于 2015-02-23T08:27:24.283 に答える