过去,我在许多 C 和 C++ 应用程序中使用了扩展通配符参数的 setargv.obj 链接,但对于 .net 应用程序,我找不到任何类似的提及。
是否有一种标准方法可以让您的应用程序的命令行参数自动扩展通配符?(即,将 *.doc 从 args 参数中的一个条目扩展到与该通配符匹配的所有条目)。
PS我已经为我当前的小项目与 Directory.GetFiles() 一起破解了一些东西,但它不包括带有路径的通配符(还),如果没有自定义代码会很好。
更新:为了说明,这是我的粗略技巧。它需要为 GetFiles 拆分路径和名称的参数,但这是一般的想法。将 setargv.obj 链接到 C 或 C++ 应用程序基本上会完成所有通配符扩展,让用户只遍历 argv 数组。
static void Main(string[] args)
{
foreach (String argString in args)
{
// Split into path and wildcard
int lastBackslashPos = argString.LastIndexOf('\\') + 1;
path = argString.Substring(0, lastBackslashPos);
filenameOnly = argString.Substring(lastBackslashPos,
argString.Length - lastBackslashPos);
String[] fileList = System.IO.Directory.GetFiles(path, filenameOnly);
foreach (String fileName in fileList)
{
//do things for each file
}
}
}