拒绝访问可移动SD卡的写入

3
我在写入我的外部sd卡时遇到问题。 每当我尝试进行写操作时,都会出现“UnauthorizedAccessException”。 我已经在Android清单中检查了“WriteExternalStorage”。因为“GetExternalStoragePublicDirectory”,“ExternalStorageDirectory”等都返回到内部存储器的路径,所以我正在使用手动路径“/ storage / 6363-3065 /”。如果我写入内部存储器,则程序运行无误,但在向SD卡写入时会抛出异常。 我能做什么来解决这个问题吗? 我的意思是,这不可能是不可能的,因为像我的文件管理器之类的其他程序可以在没有root或任何东西的情况下执行它... 附加说明: 我使用的是安卓6.0的LG G4。 代码很简单:
string filepath = "/storage/6363-3065/Temp/tempfile.temp";
Directory.CreateDirectory(Path.GetDirectoryName(filepath));

请发布一些代码。 - Qandeel Abbassi
1个回答

0

试试这个:

     string text="TestText";
     var dir = System.IO.Path.Combine(Android.OS.Environment.ExternalStorageDirectory.ToString(), "yourAppName");
     if (Directory.Exists(dir) == false)
                {
                    Directory.CreateDirectory(dir);
                }
       string dbFileSDCard = System.IO.Path.Combine(Android.OS.Environment.ExternalStorageDirectory.ToString(), "yourAppName/YourFile.txt");
       System.IO.File.WriteAllText(@dbFileSDCard, text);

你有收到错误吗?


我没有收到任何错误提示,但它也没有解决我的问题。因为它只写入了内部存储器。正如我所说,内置函数都返回到内部存储器的路径,所以我使用手动路径访问SD卡,但是显然我没有在那里获得写入权限。 - AllRight
你找到这个了吗:https://dev59.com/l1wY5IYBdhLWcg3wATpt - user1230268
这不是权限的问题,它们已经被检查并且正常工作。问题可能在于Android处理SD卡的方式上,我正在寻找一种Xamarin的解决方法。 - AllRight
在Android 6中,您可以决定是否将SD卡用作内部存储或外部存储。请查看此链接:https://motorola-global-portal.custhelp.com/app/answers/prod_answer_detail/a_id/109134/p/1449,9582 您选择了哪一个? - user1230268
我无法在这两者之间进行选择,SD卡会自动作为可移动存储。 - AllRight
1
你是否已经给你的应用程序授权:设置 > 应用程序 > 特定应用程序 > 写入SD卡? - user1230268

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接