diff --git a/compiler/util/src/org/jetbrains/jet/utils/PathUtil.java b/compiler/util/src/org/jetbrains/jet/utils/PathUtil.java index 6f7c0b05df8..cfb151927e2 100644 --- a/compiler/util/src/org/jetbrains/jet/utils/PathUtil.java +++ b/compiler/util/src/org/jetbrains/jet/utils/PathUtil.java @@ -20,6 +20,7 @@ package org.jetbrains.jet.utils; import com.intellij.openapi.application.PathManager; +import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileManager; import org.jetbrains.annotations.NotNull; @@ -124,4 +125,20 @@ public class PathUtil { } return VirtualFileManager.getInstance().findFileByUrl("jar://" + file.getPath() + "!/"); } + + @NotNull + public static VirtualFile jarFileOrDirectoryToVirtualFile(@NotNull File file) { + if (file.exists()) { + if (file.isDirectory()) { + return VirtualFileManager.getInstance() + .findFileByUrl("file://" + FileUtil.toSystemIndependentName(file.getAbsolutePath())); + } + else { + return VirtualFileManager.getInstance().findFileByUrl("jar://" + FileUtil.toSystemIndependentName(file.getAbsolutePath()) + "!/"); + } + } + else { + throw new IllegalStateException("Path " + file + " does not exist."); + } + } }