我正在尝试编写一个DigitalMicrograph脚本,该脚本会打开包含文件名中特定字符串的所有图像。
我知道如何使用OpenImage( filename )
打开图像,我在文档中看到命令GetFilesInDirectory()
存在,这似乎是我需要的。但是,我不明白我如何使用此命令。有人可以给我一个代码片段来证明这一点吗?
答案 0 :(得分:1)
命令GetFilesInDirectory()
为您提供给定目录中所有文件/子文件夹的TagList。这在以下示例中显示:
String folder
TagGroup FileList
number fFiles = 1
number fFolders = 2
If ( !GetDirectoryDialog( "Select base folder", "", folder ) )
Exit(0)
FileList = GetFilesInDirectory( folder, fFiles + fFolders )
If ( FileList.TagGroupCountTags() > 0 )
FileList.TagGroupOpenBrowserWindow( "Files & Folders", 0 )
此脚本将在浏览器窗口中显示生成的TagGroup,如下所示。每个列表条目本身就是一个TagGroup,它包含一个标签“Name”。此标记包含文件或文件夹名称。您可以使用该命令仅为您提供文件,仅为您提供子文件夹,或两者兼而有之。
一旦拥有所有条目的TagGroup,您的处理就像DigitalMicrograph中的任何其他TagGroup一样。例如,您可以浏览列表以读出字符串,并将它们简单地打印到结果窗口,如下所示:
number nTags = FileList.TagGroupCountTags()
for ( number I = 0; I < nTags; i++ )
{
TagGroup entryTG
FileList.TagGroupGetIndexedTagAsTagGroup( i, entryTG )
if ( entryTG.TagGroupIsValid() )
{
string filestr
if ( entryTG.TagGroupGetTagAsString( "Name", filestr ) )
{
Result( "\n File:" + filestr )
}
}
}