Unb*_*ced 6 xamarin.android xamarin
我想将我的日志保存到一个文件夹,我可以使用Windows资源管理器访问该文件夹.例如,我想在以下路径中创建我的日志
这个PC\Galaxy A5(2017)\ Phone\Android\data\MyApp\files
所以我尝试使用环境变量......我得到了如此
/数据/用户/ ...
但是在这里我看不到我创建的文件(使用代码我可以访问路径,但我想在资源管理器中看到).
我如何用代码创建上面的路径?
当我尝试这个代码
var finalPath2 = Android.OS.Environment.GetExternalStoragePublicDirectory
(Android.OS.Environment.DataDirectory.AbsolutePath);
Run Code Online (Sandbox Code Playgroud)
我得到路径"/ storage/emulated/0/data"
和
如果我使用代码
var logDirectory =Path.Combine(System.Environment.GetFolderPath
(System.Environment.SpecialFolder.ApplicationData),"logs");
Run Code Online (Sandbox Code Playgroud)
我得到以下路径:
/data/user/0/MyApp/files/.config/logs
和
var logDirectory =Path.Combine(System.Environment.GetFolderPath
(System.Environment.SpecialFolder.MyDocuments),"logs");
Run Code Online (Sandbox Code Playgroud)
"/data/user/0/IM.OneApp.Presentation.Android/files/logs"
但遗憾的是我无法通过资源管理器访问此文件夹....
这个PC\Galaxy A5(2017)\ Phone\Android\data\MyApp\files
那么如何通过使用环境在c#中找到这条路径呢?
更新:
当我给出以下路径硬编码时,它会创建我想要的文件..
logDirectory ="/ storage/emulated/0/Android/data/MyApp/files/logs";
是否有任何创建此路径的环境?我可以组合2个环境并进行一些字符串处理以创建此路径.但也许有一种更简单的方法?
您正在寻找 的根GetExternalFilesDir,只需传递一个 null:
var externalAppPathNoSec = GetExternalFilesDir(string.Empty).Path;
Run Code Online (Sandbox Code Playgroud)
注意:这是一个Context基于实例的方法,您可以通过 Android 应用程序上下文、Activity 等访问它...(请参阅下面的 Android 上下文文档链接)
共享存储可能并不总是可用,因为用户可以弹出可移动介质。可以使用Environment.getExternalStorageState(File)检查媒体状态。
这些文件没有强制执行安全措施。例如,任何持有 Manifest.permission.WRITE_EXTERNAL_STORAGE 的应用程序都可以写入这些文件。
| 归档时间: |
|
| 查看次数: |
718 次 |
| 最近记录: |