我在過去曾使用過setargv.obj linking for Expanding Wildcard Arguments來處理大量的C和C++應用程序,但是我找不到任何類似的.net應用程序。.net應用程序是否有通配符擴展選項?
是否有標準如何讓應用程序的命令行參數自動通配符擴展?(即從args參數中的一個條目擴展* .doc到與該通配符匹配的所有條目)。
P.S.我已經用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
}
}
}
通過使用該方法的客戶你的意思是,不僅通配符文件名,但通配符文件夾名稱嗎?例如:C:\ Windows \ System32 \ * \ Test * .doc? – BenAlabaster 2008-12-19 16:09:38
「原始」setargv.obj只能在文件名中使用通配符,所以這就是我要找的。 – crashmstr 2008-12-19 16:46:10
根本看起來不像黑客,它看起來很直截了當。 – 2008-12-23 00:51:01