Netbeans API:如何保存文件,或当前项目中的所有文件?

Posted

技术标签:

【中文标题】Netbeans API:如何保存文件,或当前项目中的所有文件?【英文标题】:Netbeans API: How to save a file, or all files in the current project? 【发布时间】:2013-02-26 20:28:23 【问题描述】:

我正在使用提供的 API 为 Netbeans 开发一个插件模块,以便为新的编程语言提供支持。

我在上下文菜单中创建了一个操作,使用文件类型中定义的 MIME 类型。

我正在寻找一种方法来保存正在选择的文件。最好只在它发生变化的情况下。

也可以保存项目所有文件中的所有更改吗?

我的 Action Listener 类的部分代码:

    @Override
    public void actionPerformed(ActionEvent ev) 
        FileObject f = context.getPrimaryFile();
        String path = f.getPath();     
        String name = f.getName();

        //Save file here

        ExecutionDescriptor descriptor = new ExecutionDescriptor()
                .controllable(true)
                .frontWindow(true)
                .preExecution(before)
                .postExecution(after);
        ExecutionService exeService = ExecutionService.newService(
                new ProcessLaunch(cmdLine),
                descriptor, "Run " + name);
        Future<Integer> exitCode = exeService.run();

     

【问题讨论】:

【参考方案1】:

LifecycleManager.getDefault().saveAll();

这将保存项目中的所有对象。

【讨论】:

【参考方案2】:

试试这个:

FileObject f = ...
DataObject data = DataObject.find(f);
EditorCookie cookie = data.getLookup().lookup(EditorCookie.class);
cookie.saveDocument();

【讨论】:

提供代码很好,除了没人能从中学到任何东西;你应该解释一下它背后的思考过程。 这背后应该有什么样的思考过程?他有一个 FileObject 并想保存。保存方法在EditorCookie中,所以他需要一个。 DataObject.find()、getLookup() 和 lookup() 都只是 getter 方法 - 没有什么花哨的东西。 FileObject、DataObject 和 Lookup 都是 NetBeans 的概念,太复杂了,这里就不解释了。

以上是关于Netbeans API:如何保存文件,或当前项目中的所有文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Netbeans 8.2 中转换选项卡中的空格?

netbeans 6.9运行不了,提示一个或多个项目未正确设置目标服务器

更改 C++ netbeans 项目中的主文件

如何使netbeans项目嵌入数据库的jar文件?

如何使用 GitHub 中的 Maven 从 NetBeans 项目迁移到 Java CI?

如何在 NetBeans 中创建我的项目的 war 文件?