2017-09-27 85 views
0

我想删除内置智能手机存储的相机文件夹中的所有文件!关闭前删除! c#android

我该怎么办?

namespace App1 
{ 
    [Activity(Label = "App1", MainLauncher = true, Icon = "@drawable/icon")] 
    public class MainActivity : Activity 
    { 
     protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle);   
      SetContentView (Resource.Layout.Main); 

      Button delete = FindViewById<Button>(Resource.Id.deleteid); 

      delete.Click += delegate 
      { 
       File dir = new File(Environment.GetExternalStoragePublicDirectory(Environment.DirectoryDcim), "/Camera"); 

       if (dir.IsDirectory) 
        { 
         int i = 0; 
         string[] children = dir.List(); 
          while (i < children.Length) 
         { 
         var file = new File(dir, children[i]).Delete(); 


          i++; 
         } 

         Toast.MakeText(this, "The folder exist", ToastLength.Short).Show(); 
        } 

        else 
        { 
         Toast.MakeText(this, "Not Works", ToastLength.Short).Show(); 
        } 
      }; 
     } 
    } 

} 

我试图用这段代码删除文件夹的内容,但应用程序崩溃。

+0

什么是崩溃的异常/堆栈跟踪! ;-) – SushiHangover

回答

0

您需要为侦听关闭事件创建接收器。对于这个需要你应该实现一流的服务和不foget添加以下行清单文件:

<action android:name="android.intent.action.ACTION_SHUTDOWN" /> 
<action android:name="android.intent.action.QUICKBOOT_POWEROFF" /> 

而且,删除用户数据,使舒尔您有权这样做:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
+0

谢谢!要在手机关机前删除文件,我需要创建一个服务? –

+0

是的。阅读本文https://developer.xamarin.com/guides/android/application_fundamentals/services/creating-a-service/ –