问题描述
我学习了“build mobile apps with Xamarin.Forms”课程。在“store local data with SQLite in a Xamarin.Forms app”部分,他们说 iOS 提供了两个文件夹来处理保存在设备上的文件:
然后,呈现此小节:
我不明白的是:这是处理 iOS Documents 文件夹的正确方法吗?我问这个是因为他们明确说 def forward_back_prop(rnn,optimizer,criterion,inp,target,hidden):
...
if hidden is not None:
hidden = hidden.detach()
...
output,hidden = rnn(inp,hidden)
...
return loss.item(),hidden
def train_rnn(rnn,batch_size,n_epochs,show_every_n_batches):
...
for epoch_i in range(1,n_epochs + 1):
hidden = None
for batch_i,(inputs,labels) in enumerate(train_loader,1):
loss,hidden = forward_back_prop(rnn,inputs,labels,hidden)
...
...
包含适当的图书馆位置。 Apple 指南要求的 Documents 文件夹怎么样?
解决方法
iOS 中有关于文件夹不同用途的详细信息,在this document:
文件:/
使用此目录来存储用户文档和应用程序数据文件。
这个目录的内容可以提供给用户 通过 iTunes 文件共享(尽管默认情况下这是禁用的)。 将 UIFileSharingEnabled 布尔键添加到 Info.plist 文件以允许 用户访问这些文件。
即使应用程序没有立即启用文件共享,您 应该避免将应该对用户隐藏的文件放在 这个目录(比如数据库文件,除非你打算共享 他们)。只要敏感文件保持隐藏,这些文件就不会 被暴露(并可能被 iTunes 移动、修改或删除),如果 在未来版本中启用文件共享。
您可以使用 Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments) 方法来获取路径 应用程序的文档目录。
此目录的内容由 iTunes 备份。
图书馆/:
Library 目录是存储不属于的文件的好地方 由用户直接创建,如数据库或其他 应用程序生成的文件。这个目录的内容永远不会 通过 iTunes 向用户公开。
您可以在库中创建自己的子目录;然而,有 这里已经有一些系统创建的目录,你应该知道 的,包括首选项和缓存。
这个目录的内容(Caches子目录除外) 由 iTunes 备份。您在库中创建的自定义目录 将被备份。
请阅读文档,如果您有其他问题,请随时询问。
更新
访问更新答案:
iOS:
string docFolder = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
string libFolder = System.IO.Path.Combine(docFolder,"..","Library");
安卓:
string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);