wildcard expansion for D args

Jay Norwood jayn at prismnet.com
Tue Feb 14 19:47:34 PST 2012


Below is a code fragment I'm using to expand pathname argv args in some directory processing code.  Works pretty well.   Basically, I'm allowing expansion of just the basename; so strings like these below are expanded into expDir[] for each matching path  in the dirname directory, which is determined by the shallow spanmode.  The last arg to dirEntries determines whether it follows links.  In this case I'm not following them.

c:\dir1\xx* 
c:\dir2\x?d

There is a special dirEntries call that appears to be intended exactly for this.  You need to include std.file and std.path


		string[] expDirs; // expanded directories from wildargv expansion on arg
		string basename = baseName(arg);
		string dirname = dirName(arg);

		// expand the wildargs for the single level.  Don't follow links
		auto dFiles = dirEntries(dirname,basename,SpanMode.shallow,false);
		foreach(d; dFiles){
			expDirs ~=  d.name;
		}



More information about the Digitalmars-d-learn mailing list