I正在尝试将从mp3文件转换的一组字节写回mp3文件以临时存储在用户的移动终端中,但似乎无法获得写入位置的正确文件夹路径。
我试过使用Directory.GetCurrentDirectory()
,Environment.CurrentDirectory
,和其他类似的方法来获取当前目录,但是只返回了null或一个/
,所以我不确定我是否正确地使用了这些方法。唯一能让我找到的路径工作的方法是FileSystem.CacheDirectory
,它给出/data/user/0/com.companyname.lal/cache/
。
我想,如果我只是暂时想存储这个mp3文件,然后删除它播放后不久,这可能是正确的想法使用该高速缓存的Android和iOS.它似乎工作,但我找不到这个/data/user/0/com.companyname.lal/cache/
完整路径,我的Android模拟器文件所在的位置.有一个data
文件夹,但没有user
或任何其他子文件夹.
就像我说的,我最终只想暂时在用户的移动终端上写入和存储这个文件,这样我就可以在播放后很快删除它,但现在我只需要弄清楚如何在所有可以用代码访问的地方写入文件。
1条答案
按热度按时间dgtucam11#
正如Jason所说,您可以使用Environment.SpecialFolder和Environment.GetFolderPath方法来选择一个合适的位置进行存储和回调,下面的代码将文件存储在System目录中:
如果System目录返回空,可以使用
ApplicationData
获取appdate的路径,我创建了一个Xamarin.Forms项目,在iOS和Android模拟器上都进行了测试,路径可以成功返回。有关方法使用的详细信息,请参阅官方文档:Environment.SpecialFolder Enum
Environment.GetFolderPath Method
**更新:**如果您需要读取文件,例如,如果您使用
WriteAllBytes
:有关详情,请参阅:File Handling in Xamarin.Forms