Stata应该递归搜索用户添加的领养目录吗?

Ric*_*ron 4 stata

我在Windows 8.1上使用Stata 14.1并将我的个人.ado文件移动到GitHub存储库.这将foo.ado放在"C:/ Users/Richard/Documents/GitHub/foo /"中,bar.ado放在"C:/ Users/Richard/Documents/GitHub/bar /"中,依此类推.

我加入GitHub的根目录下adopathadopath + "C:/Users/Richard/Documents/GitHub/",但塔塔并未搜索.ado文件"富","酒吧"等子目录.我通过添加foo.ado存储库来修复此问题adopath + "C:/Users/Richard/Documents/GitHub/foo",依此类推.

我预计塔塔搜索"C:/用户/理查德/文档/ GitHub上/"递归,因为它这样做了BASE,SITEPLUS.递归搜索是否仅限于默认adopath目录?

公平地说,添加十个目录并不困难adopath,但我想遵循最佳实践.adopath除了help adopath1996年的常见问题之外,我找不到太多.

小智 5

Stata并不完全递归地搜索BASE,SITE和PLUS.它搜索每个目录,并在目录中,将在一个子目录中搜索,该子目录的名称是要搜索的命令的第一个字母.

在PERSONAL中,我创建了子目录f并放在其中foo.ado.当我在fooStata的Command窗口中输入命令时,Stata找到foo.ado并运行了该程序.

这并没有直接解决您的问题,但它确实表明Stat与其他目录一致地对待PERSONAL,降低了说服StataCorp实施您的建议的可能性,但确认您的解决方案似乎是"最佳实践",例如它们是.

在我的Mac上,我将目录重命名fgnxl,然后在终端窗口中重命名

cd ~/Library/Application Support/Stata/ado/personal
ln -s gnxl/foo.ado .
Run Code Online (Sandbox Code Playgroud)

之后,退出并重新启动Stata后,foo命令按预期执行.也许这为您指明了一个方向,通过一些自动化来生成符号链接,因为在您的存储库中创建了新的ado文件.我不知道GitHub是否可以在其框架内知道这是否可行.