【发布时间】:2019-06-05 04:53:50
【问题描述】:
我想将我的日志保存到我可以使用 Windows 资源管理器访问的文件夹中。例如我想在以下路径中创建我的日志
这台电脑\Galaxy A5 (2017)\Phone\Android\data\MyApp\files
所以我尝试使用环境变量...我得到诸如
/数据/用户/...
但是在这里我看不到我创建的文件(使用代码我可以访问路径,但我想在资源管理器中看到)。
如何使用代码创建类似上面的路径?
当我尝试这段代码时
var finalPath2 = Android.OS.Environment.GetExternalStoragePublicDirectory
(Android.OS.Environment.DataDirectory.AbsolutePath);
我得到路径“/storage/emulated/0/data”
和
如果我使用代码
var logDirectory =Path.Combine(System.Environment.GetFolderPath
(System.Environment.SpecialFolder.ApplicationData),"logs");
我得到以下路径:
/data/user/0/MyApp/files/.config/logs
和
var logDirectory =Path.Combine(System.Environment.GetFolderPath
(System.Environment.SpecialFolder.MyDocuments),"logs");
“/data/user/0/IM.OneApp.Presentation.Android/files/logs”
但不幸的是,我无法通过资源管理器访问此文件夹....
这台电脑\Galaxy A5 (2017)\Phone\Android\data\MyApp\files
那么如何在c#中通过环境找出这条路径呢?
更新:
当我给出以下硬编码的路径时,它会在我想要的位置创建文件..
logDirectory = "/storage/emulated/0/Android/data/MyApp/files/logs";
是否有任何环境可以创建此路径?我可以结合 2 个环境并进行一些字符串处理以创建此路径。但也许有更简单的方法?
【问题讨论】:
-
@SushiHangover,我更喜欢保存在我们的应用文件夹中。我正在更新我的问题
-
@SushiHangover 给定的路径有效(我已经更新了我的问题)我只需要创建这个路径..
-
这是公共存储(模拟),因为它在您应用的沙盒之外,而不是私有沙盒应用存储。任何人都可以访问它,就像音乐、下载、电影等一样。如果您可以访问私有应用程序文件存储(即 root 手机),整个 Android 文件系统安全模型就会被破坏
-
@SushiHangover,当然。我的意思是不通过沙箱将文件保存到文件夹中。但正如您看到的路径,它比“下载”文件夹“更”私密。我希望它现在清楚了。顺便谢谢你的回复..