先简单介绍,后文附有代码和运行的实际效果。
Environment.CurrentDirectory 属性:
获取或设置当前工作目录的完全限定路径。
public static string CurrentDirectory { get; set; }
例外
ArgumentException
已尝试设置为空字符串 ("")。
ArgumentNullException
已尝试设置为 null。
IOException
出现 I/O 错误。
DirectoryNotFoundException
已尝试设置一个找不到的本地路径。
SecurityException
调用方没有相应的权限。
以下代码实测显示Environment.CurrentDirectory默认值,XML文件:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="HtCurrentDirectory.MainPage">
<ScrollView>
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Image
Source="https://hovertree.com/hvtimg/201512/agagq0or.jpg"
SemanticProperties.Description="hovertree.com!"
HeightRequest="200"
HorizontalOptions="Center" />
<Label
Text="Hello, Hovertree!"
SemanticProperties.HeadingLevel="Level1"
FontSize="32"
HorizontalOptions="Center" />
<Label
x:Name="HtLabel"
Text="Welcome to Hovertree MAUI "
SemanticProperties.HeadingLevel="Level2"
SemanticProperties.Description="Welcome to Hovertree MAUI"
FontSize="18"
HorizontalOptions="Center" />
<Button
x:Name="HtBtn"
Text="Click me"
SemanticProperties.Hint="Cuttent "
Clicked="OnHtBtnClicked"
HorizontalOptions="Center" />
</VerticalStackLayout>
</ScrollView>
</ContentPage>
cs文件代码(关键部分):
private void OnHtBtnClicked(object sender, EventArgs e)
{
HtLabel.Text = Environment.CurrentDirectory;
}
安卓系统效果如下图:

Windows系统效果如下图:

Environment.CurrentDirectory默认值,就是程序运行后,不对Environment.CurrentDirectory做设置的值。
Environment.CurrentDirectory是可以进行设置的,例如:
Environment.CurrentDirectory="E:\\HoverTreeTop\\";//Windows系统
Environment.CurrentDirectory="/HoverTreeTop/";//android系统
以上设置需要确认文件夹是存在的,否则会报错。
补充进一步研究的代码:
string m_directoryHt = "E:\\HoverTreeTop";
if(Directory.Exists(m_directoryHt))
{
Environment.CurrentDirectory = m_directoryHt;
}
string m_directory = "/";
if (Directory.Exists(m_directory))
{
Environment.CurrentDirectory = m_directory;
}
HtLabel.Text = Environment.CurrentDirectory;//在Windows系统上,如果 E:\HoverTreeTop 存在,则结果为E:\,否则为系统盘根目录(一般为C:\)
另外:如果要获取可用于MAUI的APP存取数据的目录,可以使用MAUI的FileSystem类,位于命名空间Microsoft.Maui.Storage下,通过FileSystem.AppDataDirectory可获取用于储存app数据的目录