【问题标题】:Create file in Xamarin Cross Platform App Development在 Xamarin 跨平台应用程序开发中创建文件
【发布时间】:2018-01-03 16:37:38
【问题描述】:

我是 Xamarin 的新手。我正在尝试使用代码创建文件

string path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
string filename = Path.Combine(path, "myfile.txt");

using (var streamWriter = new StreamWriter(filename, true))
{
    streamWriter.WriteLine(DateTime.UtcNow);
}

using (var streamReader = new StreamReader(filename))
{
    string content = streamReader.ReadToEnd();
    System.Diagnostics.Debug.WriteLine(content);
}

上面的代码示例给了我异常
System.UnauthorizedAccessException: 'Access to the path 'C:\Users\hchittora\Documents\myfile.txt' is denied.' p>

这是完整的堆栈跟踪

    System.UnauthorizedAccessException
    HResult=0x80070005
    Message=Access to the path 'C:\Users\hchittora\Documents\myfile.txt' is denied.
  Source=System.Private.CoreLib
  StackTrace
   at System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle)
   at System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
   at System.IO.StreamWriter..ctor(String path, Boolean append)
   at FileHandlingSampleApplication.MainPage..ctor() in C:\Users\hchittora\Desktop\FileHandlingSampleApplication\FileHandlingSampleApplication\FileHandlingSampleApplication\MainPage.xaml.cs:line 19
   at FileHandlingSampleApplication.App..ctor() in C:\Users\hchittora\Desktop\FileHandlingSampleApplication\FileHandlingSampleApplication\FileHandlingSampleApplication\App.xaml.cs:line 16
   at FileHandlingSampleApplication.UWP.MainPage..ctor() in C:\Users\hchittora\Desktop\FileHandlingSampleApplication\FileHandlingSampleApplication\FileHandlingSampleApplication.UWP\MainPage.xaml.cs:line 24
   at FileHandlingSampleApplication.UWP.FileHandlingSampleApplication_UWP_XamlTypeInfo.XamlTypeInfoProvider.Activate_4_MainPage() in C:\Users\hchittora\Desktop\FileHandlingSampleApplication\FileHandlingSampleApplication\FileHandlingSampleApplication.UWP\obj\x86\Debug\XamlTypeInfo.g.cs:line 255
   at FileHandlingSampleApplication.UWP.FileHandlingSampleApplication_UWP_XamlTypeInfo.XamlUserType.ActivateInstance() in C:\Users\hchittora\Desktop\FileHandlingSampleApplication\FileHandlingSampleApplication\FileHandlingSampleApplication.UWP\obj\x86\Debug\XamlTypeInfo.g.cs:line 476

当我查看上述问题时,我知道 UWP 无法直接与系统文件交互。还有什么办法可以做到这一点?

【问题讨论】:

    标签: xamarin.forms uwp


    【解决方案1】:

    因为 Xamarin.Forms 在多个平台上运行,每个平台都有自己的文件系统,所以没有单一的方法来加载和保存用户创建的文件。

    我不能在这里提供所有平台的代码,因为你需要了解它的基础。查看this 了解更多详情。

    【讨论】:

      【解决方案2】:

      我正在使用 SecureStorage 库和依赖注入来保存在每个平台上。虽然这主要用于令牌缓存,但您可能会发现它很有用。

      【讨论】:

      • 我无法在本地机器上运行该应用程序。它抛出错误:无法直接启动项目“Plugin.SecureStorage.UWP”。为了调试此项目,您必须从创建包并标记为启动项目的 Windows 应用商店应用项目中使用它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      • 2020-05-24
      相关资源
      最近更新 更多