Recursively Print Data Folder Paths

Average rating
(2 votes)

//	PrintDataFolderPaths(startingDFR, level)
//	Recursively prints data folder paths
//	Example: PrintDataFolderPaths(root:, 0)
//	Requires Igor Pro 6.1 or later
Function PrintDataFolderPaths(startingDFR, level)
	DFREF startingDFR
	Variable level			// 0 for top level
 
	Variable i
 
	String prefix = ""				// Used to show data folder level using indentation
	for(i=0; i<level; i += 1)
		prefix += "\t"
	endfor
 
	Variable numDataFolders = CountObjectsDFR(startingDFR, 4)
	for(i=0; i<numDataFolders; i+=1)
		String dfName = GetIndexedObjNameDFR(startingDFR, 4, i)
		if (strlen(dfName) == 0)
			break
		endif
 
		DFREF dfr = startingDFR:$dfName
		String path = GetDataFolder(1, dfr)
 
		Print prefix + path
 
		PrintDataFolderPaths(dfr, level+1)				// Returns
	endfor
End

Back to top