C# 如何检测1台计算机中何时有2个用户/帐户,以及检测当前正在使用的用户/帐户

C# 如何检测1台计算机中何时有2个用户/帐户,以及检测当前正在使用的用户/帐户,c#,file,directory,C#,File,Directory,当PC只有1个用户/帐户时,这项功能非常有效,但当我在笔记本电脑上尝试时,它只会显示无效(目录) 如评论中所述,您可以(应该)使用: Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) 然后我还建议使用Path.combined,如下所示: var basePath=Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicatio

当PC只有1个用户/帐户时,这项功能非常有效,但当我在笔记本电脑上尝试时,它只会显示无效(目录)


如评论中所述,您可以(应该)使用:

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
然后我还建议使用
Path.combined
,如下所示:

var basePath=Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
watcher.Path=Path.Combine(basePath,“Secret”,“Secret”);

而不是手动构建路径。

您的笔记本电脑上是否存在目录
C:\Users\{Username}\AppData\Local\Secret\Secret
?是的,但有2个用户,因此它不知道选择什么。如果该目录不存在,您必须首先创建它。顺便说一下,您可以使用
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
获取路径的第一部分。(“C:\Users\\AppData\Local”)正是@Herohtar所说的,除了can->must。。。没有其他方法可以知道特殊文件夹的位置。。。
private static void CreateWatcher()
        {
            FileSystemWatcher watcher = new FileSystemWatcher();

            watcher.Filter = "*.txt*";

            watcher.Created += new FileSystemEventHandler(Watcher_FileCreatedAsync);

            String UserName = Environment.UserName;
            watcher.Path = $@"C:\Users\{UserName}\AppData\Local\Secret\secret";

            watcher.EnableRaisingEvents = true;
        }

        private static async void Watcher_FileCreatedAsync(object sender, FileSystemEventArgs e)
        {
            MessageBox.Show("Txt has been created");
        }


        private async void Loginc_Load(object sender, EventArgs e)
        {
            CreateWatcher();
        }