簡體   English   中英

Xamarin android保存文本文件

[英]Xamarin android save text file

我正在使用Xamarin.Android,並且要將.txt文件保存到SD卡。 這是我正在使用的代碼:

  private void SavetoSd()
  {
       var sdCardPath = Android.OS.Environment.ExternalStorageDirectory.Path;
       var filePath = System.IO.Path.Combine(sdCardPath, "iootext.txt");
       if (!System.IO.File.Exists(filePath))
       {
           using(System.IO.StreamWriter write = new System.IO.StreamWriter(filePath,true))
           {
               write.Write(etSipServer.ToString());
           }
       }    
  }

但是,我收到以下錯誤:

System.UnauthorizedAccessException:拒絕訪問路徑“ /mnt/sdcard/iootext.txt”。

我在清單中添加了以下內容:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

我該如何解決錯誤?

如果您使用的是Android 6.0+,則需要執行運行時檢查權限。 可以這樣完成:

if ((CheckSelfPermission(Permission.ReadExternalStorage) == (int)Permission.Granted) && 
    (CheckSelfPermission(Permission.WriteExternalStorage) == (int)Permission.Granted))

這個更多的信息可以在Android文檔中找到這里

如果文件不存在,則首先創建,然后獲取絕對路徑並將數據寫入其中。

     Java.IO.File sdCard = Android.OS.Environment.ExternalStorageDirectory;
     Java.IO.File dir = new Java.IO.File (sdCard.AbsolutePath + "/MyFolder");
     dir.Mkdirs ();
     Java.IO.File file = new Java.IO.File (dir,"iootext.txt");
        if (!file.Exists ()) {
            file.CreateNewFile ();
            file.Mkdir ();
            FileWriter writer = new FileWriter (file);
            // Writes the content to the file
            writer.Write (jsonData);
            writer.Flush ();
            writer.Close ();
        }

我遇到了同樣的問題,花了幾個小時后,我發現如果您在高於23的sdk上運行,而高於6的android版本則應對用戶實施訪問請求。 請在鏈接上找到更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM