【发布时间】:2021-07-16 16:59:07
【问题描述】:
我想要一个文件夹,其中包含每个访问它的用户的文件夹。
C:\bla\blabla\user1
C:\bla\blabla\user2
等等
如何在 .NET 中使用 Windows %username% 通配符来执行此操作?
这个,例如:
IO.Directory.CreateDirectory("C:\bla\blabla\%username%")
只给我一个文件夹,名字正好是“C:\bla\blabla\%username%\”
【问题讨论】:
-
添加找到这些
%stuff%占位符的代码,提取stuff,通过Environment.GetEnvironmentalVariable提供它,并插入解析的值,并进行适当的错误处理。你可以做到这一点,例如Regex.Replace(input, @"%(\w+)%", m => Environment.GetEnvironmentVariable(m.Groups[1].Value)) -
打开 cmd.exe 并输入 > Set 给出环境变量列表。使用类似这样的获取变量:string username = Environment.GetEnvironmentVariable("username");
-
将这些数据存储在每个用户的 AppData 下的文件夹中不是更好吗? a) 数据对每个用户都是私有的,并成为他们个人资料的一部分,b) 您可以通过 %AppData%\yourappname 简单地访问它。如果您注意到,这就是大多数应用程序执行此类操作的方式,这也是 MS 推荐的针对每用户数据的方式。他们还可能在用户的 Documents 文件夹下创建一个文件夹,用于存放与用户可能真正想要查看和查找的应用程序相关的内容(而 AppData 通常用于设置和此类内容。)
-
@ADyson 通常是的,在这种情况下,他们只是碰巧需要一个文件夹,每个文件夹都位于共享位置。
标签: c# windows vb.net directory