Простецкий алгоритм для чтения структуры файла SolidWorks 2007
private void moveIter(Iterator iterator, String name) {
while (iterator.hasNext()) {
def it = iterator.next()
if (it instanceof DocumentNode) {
readDocumentNode(it, name)
}
if (it instanceof DirectoryNode) {
DirectoryNode dn = (DirectoryNode) it
String path = createPath(dn)
moveIter(dn.entries, path)
}
}
}
private def readDocumentNode(DocumentNode documentNode, String path) {
log.error('==-' + documentNode.name + path)
}
private String createPath(DirectoryEntry directoryEntry) {
String result = ''
if (directoryEntry.parent) {
result = createPath(directoryEntry.parent)
}
result = result + '/' + directoryEntry.name
result
}
В результате чего я получил такой список:
- \005 DocumentSummaryInformation
- \005SummaryInformation
- Config-0-Properties
- Header2
- ISolidWorksInformation
- ModelStamps
- Preview
- PreviewPNG
директория Contents
- Config-0
- CMgrHdr2
- eModelLic
- Config-0-GhostPartition
- CnfgObjs
- CMgr
- OleItems
- Config-0-LWDATA
- Config-0-Partition
- DisplayLists__ZLB
- Definition
директория ThirdPty
- MOLDFLOWXpress
- Pw2StorageStream.1.35
- Intermech_internal_structure
- CM_MOTION_LOAD_1
- Intermech_document_settings
- CMMotionLoadMapU
- PBPDFlt
- SWA_Schedules
- Animator__ZLB
директория ThirdPtyStore
- VisualStates__ZLB
- VisualStates_DisplayPane
директория _DL_VERSION_4400
- DLUpdateStamp
- History
- Biography
- AssyVisualData
директория swXmlContents
- Tables__ZLB
- KeyWords__ZLB
- MATERIALTREE
Интересно, что в файле есть такие поля как Intermech, видимо они остаются если у вас в SolideWorks-е подключен плагин Intermech