【发布时间】:2019-09-11 17:39:34
【问题描述】:
在我们开始之前,我知道很多人发布了类似的问题,但我无法解决我的问题。
我尝试将位图保存到 Android 设备的图库中,但无法到达该特定路径。
代码如下:
string root = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;
Java.IO.File myDir = new Java.IO.File(root + "/Screenshots");
myDir.Mkdirs();
string fname = "test_picture.jpg";
Java.IO.File file = new Java.IO.File(myDir, fname);
if (file.Exists())
file.Delete();
try
{
FileStream outStream = new FileStream(file.Path, FileMode.OpenOrCreate); //Seems like the problem is here
finalBitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, outStream);
outStream.Flush();
outStream.Close();
}
catch (Exception e)
{
Toast.MakeText(Activity, e.ToString(), ToastLength.Long).Show();
}
我得到这个错误:
System.IO.DirectoryNotFoundException:找不到路径“/storage/emulated/0/Screenshots/test_picture.jpg”的一部分
路径有什么问题?错误的根源是什么?
P.S:我已授予所有需要的权限。
【问题讨论】:
-
代码是否创建了文件夹“/Screenshots”?
-
@jdweng 我不知道应该在哪里找到它,因为我没有进入 storage\emulated\0.. 的权限。为什么系统不直接进入 sdCard 路径?
-
如果您没有权限手动转到文件夹,为什么您认为您的 c# 代码可以访问同一文件夹?
-
@jdweng 这就是重点。为什么我无法进入 sdCard 路径?
-
看看以下是否有帮助。它在智能卡上使用读/写 XML 文件,但相同的规则应适用于任何文件。 stackoverflow.com/questions/27396592/…
标签: java c# android file xamarin