Hi CasettaMichael.
I have made this in the past. However it is very very slow.
#FusionAPI_python GetDataList Ver0.0.1
#Author-kantoku
#Description-サインインしているID内の全ファイル名の取得・・・遅い!
import adsk.core, adsk.fusion, traceback
def run(context):
ui = None
try:
app = adsk.core.Application.get()
ui = app.userInterface
#エクスポートファイルパス
path = Get_Filepath(ui)
if path is None:
return
#ファイル名の取得
filenames = ''
project = adsk.core.DataProject.cast(None)
for project in app.data.dataProjects:
results = ''
results = getFiles(project.rootFolder, results, 0)
filenames += results
if len(filenames) < 1:
ui.messageBox('Data not found')
return
#ファイルに書き込み
file = open(path, 'w')
file.write(filenames)
file.close()
ui.messageBox('Done')
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
def getFiles(folder, results, depth):
try:
results += '\n' + (' ' * (depth * 4)) + folder.name
f = adsk.core.DataFolder.cast(folder)
file = adsk.core.DataFile.cast(None)
for file in f.dataFiles:
results += '\n' + (' ' * ((depth+1) * 4)) + file.name
for subFolder in f.dataFolders:
results = getFiles(subFolder, results, depth+1)
return results
except:
return False
#ファイルパス
def Get_Filepath(ui):
dlg = ui.createFileDialog()
dlg.title = 'File name export'
dlg.isMultiSelectEnabled = False
dlg.filter = 'text(*.txt)'
if dlg.showSave() != adsk.core.DialogResults.DialogOK :
return
return dlg.filename