スティーブの答えは正しいですが、私の場合は再帰を使うのが理にかなっていました。私は再び
void RecurseFolder(Folder fld)
{ // Deal RECURSIVELY with sub-folders, and then all modules in this folder
if (!fileExists_(g_base_dir "\\" name(fld)) && !(name(current) == name(fld)))
{
mkdir(g_base_dir "\\")
}
Skip skpItems = createString()
Item itm
string NameItem
Folder fldNew
// Stage in Skip, key is name which is Alpha order
for itm in fld do
{
put (skpItems, fullName(itm), itm)
}
// Recurse through sub-folders
for itm in skpItems do
{
string base_dir = g_base_dir
NameItem = (string key skpItems)
if (type(itm) == "Folder" or type(itm) == "Project")
{
fldNew = folder(NameItem)
g_base_dir = g_base_dir "\\" name(fldNew)
RecurseFolder(fldNew) // *** RECURSION ***
g_base_dir = base_dir
}
else if (type(itm) == "Formal")
{
//open module for reading - silent mode, standard view
Module m = read(fullName(itm), false, true)
if (NameItem != "")
{
if (!null export(base_dir "\\" name(itm) ".xml"))
{
errorBox "Export failed! - \n" base_dir "\\" name(itm) ".xml"
}
}
//if module is not visible
if (!isVisible(m))
{
// close it to improve performance
close m
}
}
else {} //Nothing to do
}
delete(skpItems)
} // end RecurseFolder()
グレートおかげでそれを見つけた場合、私はそれをリンクします、このコードは、私はIBMの開発者で見つかったバージョンから変更された
がフォーラム作品が、私はソースを見つけることができない、私があげます前 :) –