質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
UWP

UWPは、Universal Windows Platformの略。様々なデバイス向けに提供されているアプリケーションを共通のフレームワーク上で動作可能にする仕組みで、Windows10で導入されました。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

1回答

1014閲覧

【UWP】フォルダの削除(ゴミ箱への移動)について

heroherohero

総合スコア38

UWP

UWPは、Universal Windows Platformの略。様々なデバイス向けに提供されているアプリケーションを共通のフレームワーク上で動作可能にする仕組みで、Windows10で導入されました。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2019/08/27 20:38

UWP(Prism version6.3)で、アプリの開発を行っております。

下記内容を実装したいと思い、色々と調べてみたのですが、実装方法が分からなかったため、質問させていただきます。

実現したいこと

フォルダ削除をした際に、対象のフォルダをゴミ箱に移動させたいです。
※フォルダ内のフォルダも一緒に移動させたいです。

調べたこと/試したこと

下記のようなに記述したところ、ゴミ箱に移動されず、そのまま完全に削除されてしまいます。
※部分的に質問に必要な部分だけを記述しております。

また、「Storage.DeleteAsync()」のオプションも、調べてみましたが、それらしきものを見つけることができませんでした。

そもそも、今回私が実現したいことを行う場合は、削除ではなく、フォルダ移動のような概念なのでしょうか。もしくは、UWPの仕様上、完全削除をするようになっているのでしょうか。

C#

1 private StorageFolder Storage { get; set; } 2 3 private async void DeleteFolder(object sender, RoutedEventArgs e) 4 { 5 await Task.Run(async () => await Storage.DeleteAsync()); 6 }

以上、アドバイスいただけますと幸いです。

どうぞ、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nskydiving

2019/08/28 01:09

まずは問題の切り分けをするのが良いかと思います。 ・「C:\Users\UserName\AppData\削除対象フォルダ」を削除した場合はゴミ箱に移動するのか? ・「C:\Users\UserName\Desktop\削除対象フォルダ」を削除した場合はゴミ箱に移動するのか? ・エクスプローラ上で削除した場合はゴミ箱に移動するのか?
heroherohero

2019/08/28 12:16

コメント、ありがとうございます。先ほど確認したところ、対象のフォルダをエクスプローラー上で削除したところ、ゴミ箱に移動しました。 なので、アプリからも、ゴミ箱に移動させることができるのだと思います。
guest

回答1

0

DeleteAsync メソッドの引数 StorageDeleteOption で、ゴミ箱に移動させるかどうかを指定できるようですが、Default を指定してもダメでしょうか?

Docs > DeleteAsync(StorageDeleteOption)
https://docs.microsoft.com/en-us/uwp/api/windows.storage.bulkaccess.fileinformation.deleteasync#Windows_Storage_BulkAccess_FileInformation_DeleteAsync_Windows_Storage_StorageDeleteOption_

Docs > StorageDeleteOption Enum
https://docs.microsoft.com/en-us/uwp/api/windows.storage.storagedeleteoption


追記

FileSystem.DeleteDirectory メソッドでもフォルダ削除ができます。
以下のコードで Test フォルダがゴミ箱に移動することを確認できました。

C#

1using Microsoft.VisualBasic.FileIO; 2 3namespace ConsoleApplication1 4{ 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 FileSystem.DeleteDirectory(@"C:\Users\UserName\AppData\Test", UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin); 10 } 11 } 12}

投稿2019/08/27 21:26

編集2019/08/29 00:48
nskydiving

総合スコア6500

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

heroherohero

2019/08/27 23:12 編集

コメント、ありがとうございます。そうですね、StorageDeleteOption を Default で設定してもうまくいきませんでした。しかし、いただいたURLからたどっていき、こちらのURL(https://docs.microsoft.com/en-us/uwp/api/windows.storage.storagedeleteoption)を確認したところ、以下のような記述がありました。 StorageDeleteOptionがdefaultの場合: アイテムがアプリケーションの保存場所(つまり、ApplicationDataクラスを介してアクセスできる場所)にある場合、アイテムは完全に削除されます。ごみ箱には移動されません。 アイテムが別の場所にある場合、アイテムはその場所のファイルエクスプローラーのデフォルトの動作に従って削除されます。アイテムはごみ箱に移動するか、完全に削除することができます。 つまり、今の自分のフォルダの設定が完全削除するようになっているのだと思います。ちなみに、対象のフォルダは、下記のようなフォルダになります。 ...(省略)\AppのGUID\LocalState\★対象のフォルダ★ 何か手はないか、もう少し調査してみたいと思います。よろしくお願いいたします
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問