【问题标题】:How to get the files from an Eclipse project?如何从 Eclipse 项目中获取文件?
【发布时间】:2015-06-03 14:16:10
【问题描述】:

功能

set[loc] visibleFiles(loc l)

from from util::FileSystem 允许您从目录中获取文件。

但是,如果该位置是 Eclipse 项目,则它不起作用。 假设我们申请

visibleFiles(|project://HelloWorld/|);

然后我们得到 Java 异常

java.lang.IllegalArgumentException: Path must include project and resource name: /HelloWorld(internal error)    at $shell$(|main://$shell$|)
java.lang.IllegalArgumentException: Path must include project and resource name: /HelloWorld
    at org.eclipse.core.runtime.Assert.isLegal(Assert.java:63)
    at org.eclipse.core.internal.resources.Workspace.newResource(Workspace.java:2131)

那么,如何获取 Eclipse 项目中的文件呢?

为了完整起见,我给出的示例项目只有一个 Java 文件:

public class HelloWorld
{
   public static void main(String[] args) {
     System.out.println("Hello World!");
  }
}

【问题讨论】:

    标签: rascal


    【解决方案1】:

    对于项目计划,我认为 rascal 想知道它应该开始的路径。试试|project://HelloWorld/src/|

    最后,visibleFiles 函数是源位置的 .ls 字段的包装器(与其他源位置函数结合使用)。

    【讨论】:

      【解决方案2】:

      添加“/src”并没有真正的帮助。

      visibleFiles(|project://HelloWorld/src/|);
      

      结果

      set[loc]: {|project://HelloWorld/src/|}
      

      这实际上是我们可以期待的,因为

       isDirectory(|project://HelloWorld/src/|);
      

      reducer 为 "false",我们有

      @doc{
      Synopsis: lists all files recursively ignored files and directories starting    with a dot.
      }
      set[loc] visibleFiles(loc l) {
        if (/^\./ := l.file) 
          return {};
        else if (isDirectory(l)) 
          return {*visibleFiles(f) | f <- l.ls};
        else 
          return {l};
      }
      

      所以,归结为应用“ls”;

      |project://HelloWorld/|.ls
      

      给出了我之前报告的错误,而

      |project://HelloWorld/src/|.ls
      

      给出消息

      IO("You can only access ls on an existing location.")
      

      【讨论】:

      • 你能用完整的堆栈跟踪提出一个 github 问题吗?这应该有效。 (也请报告您正在运行哪个版本的流氓)
      • 可能是个愚蠢的问题,但是 HelloWorld 是一个没有任何文件的新项目吗?在src 文件夹上使用ls 对我有用,但如果您刚刚创建项目,src 目录会显示在项目资源管理器中,但在您向其中添加文件之前并不真正存在(在磁盘上)。
      猜你喜欢
      • 1970-01-01
      • 2015-11-19
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-25
      相关资源
      最近更新 更多