Access Files and Folders in .NET MAUI (Cross-Platform)

Learn to access files and folders in .NET MAUI using the FileSystem class and platform-specific Android code, with practical C# examples.

Use the MAUI-specific class Microsoft.Maui.Storage.FileSystem, namespace Microsoft.Maui.Storage, which provides more cross-platform compatible libraries.
In the Platform\Android folder, use the following code to query.

1
2
3
4
var dir = Environment.GetExternalStoragePublicDirectory(Environment.DirectoryPictures);  
var files = Directory.GetFiles(dir.AbsolutePath, "*");
var path = Android.App.Application.Context.GetExternalFilesDir(null);
var cache = Android.App.Application.Context.GetExternalCacheDirs().First().AbsolutePath;
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Get the full path of the app executable
string location = Assembly.GetExecutingAssembly().Location;
// Get the directory of the app
var localDir = Path.GetDirectoryName(location);
if (Directory.Exists(localDir))
{
    // Get a list of subdirectories
    var dir = Directory.GetDirectories(localDir);
    //foreach (var item in dir)
    {
        var ffs = Directory.GetFiles(dir.Last());
        ffs = Directory.GetFiles(dir.First());
        ffs = Directory.GetFiles(FileSystem.Current.AppDataDirectory);
    }
    // Get a list of subdirectories in the app directory "/data/user/0/com.companyname.mauiapp2/files"
    var fs = Directory.GetDirectories(FileSystem.Current.AppDataDirectory);
    foreach (var item in fs)
    {
        var ffs = Directory.GetFiles(item);
    }
    var files = Directory.GetFiles(localDir);
    List<string> list = new List<string>();
    string ss = "";
    foreach (var file in files)
    {
        var f = Path.GetFileName(file);
        list.Add($"{f}");
    }
    foreach (var item in list.Order())
    {
        ss += $"{item}\r\n";
    };
    s = JsonSerializer.Serialize(list);
}
Built with Hugo
Theme Stack designed by Jimmy