Xamarin android save text file
16,392
Solution 1
If you're on Android 6.0+ you will need to perform a runtime check for permissions. This can be done like so:
if ((CheckSelfPermission(Permission.ReadExternalStorage) == (int)Permission.Granted) &&
(CheckSelfPermission(Permission.WriteExternalStorage) == (int)Permission.Granted))
More information on this can be found in the android documentation here.
Solution 2
If file does not exist first create, than get the absolute path and write your data into it.
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 ();
}
Author by
Wuhu
Updated on July 26, 2022Comments
-
Wuhu 11 months
I am using Xamarin.Android and I want to save a
.txt
file to the SD card. Here is the code that I am using: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()); } } }
However, I receive the following error:
System.UnauthorizedAccessException: Access to the path "/mnt/sdcard/iootext.txt" is denied.
I have added the following to the manifest:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
How can I fix the error?