diff --git a/platform/util/src/com/intellij/ui/mac/foundation/Foundation.java b/platform/util/src/com/intellij/ui/mac/foundation/Foundation.java index b090176309ef..227f9fd3b0f4 100644 --- a/platform/util/src/com/intellij/ui/mac/foundation/Foundation.java +++ b/platform/util/src/com/intellij/ui/mac/foundation/Foundation.java @@ -19,7 +19,9 @@ import com.intellij.util.containers.HashMap; import com.sun.jna.Callback; import com.sun.jna.Native; import com.sun.jna.Pointer; +import org.jetbrains.annotations.NotNull; +import java.io.File; import java.io.UnsupportedEncodingException; import java.util.Map; @@ -89,6 +91,18 @@ public class Foundation { return toStringViaUTF8(myFoundationLibrary.NSFullUserName()); } + public static boolean isPackageAtPath(@NotNull final String path) { + final ID workspace = invoke("NSWorkspace", "sharedWorkspace"); + final ID result = invoke(workspace, createSelector("isFilePackageAtPath:"), cfString(path)); + + return result.intValue() == 1; + } + + public static boolean isPackageAtPath(@NotNull final File file) { + if (!file.isDirectory()) return false; + return isPackageAtPath(file.getPath()); + } + /** * Return a CFString as an ID, toll-free bridged to NSString. *