允许写入SD卡

我想我的应用程序将应用程序数据库存档到SD卡。 在我的代码中,我检查目录canWrite()存在,如果不存在,则抛出一个IOException 。 在这个特定的实例中,我试图将db文件复制到SD卡上的根目录,但是它抛出了一个IOException 。 如何更改文件夹/文件的权限以便能够写入?

你是对的,SD卡目录是/sdcard但你不应该硬编码它。 而是调用Environment.getExternalStorageDirectory()来获取目录:

 File sdDir = Environment.getExternalStorageDirectory(); 

如果您还没有这样做,则需要通过将以下行添加到您的清单中,为您的应用程序提供正确的写入SD卡的权限:

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

在Dave的回答中,上面的build议技术当然是一个很好的devise实践,并且最终必须在AndroidManifest.xml文件中设置所需的权限才能访问外部存储。

然而,通过实现活动(或服务)的类的属性来添加大多数(如果不是全部的话,不确定的)“清单选项”的单一方式的方式。

Visual Studio Mono插件自动生成清单,所以最好不要手动篡改它(我确定有些情况下没有其他select)。

例如:

 [Activity(Label="MonoDroid App", MainLauncher=true, Permission="android.permission.WRITE_EXTERNAL_STORAGE")] public class MonoActivity : Activity { protected override void OnCreate(Bundle bindle) { base.OnCreate(bindle); } }