Class PathUtil

java.lang.Object
net.minecraft.util.PathUtil

public class PathUtil extends Object
A class holding path-related utility methods.
Mappings:
Namespace Name
official u
intermediary net/minecraft/class_4239
named net/minecraft/util/PathUtil
  • Field Details

    • FILE_NAME_WITH_COUNT

      private static final Pattern FILE_NAME_WITH_COUNT
      Mappings:
      Namespace Name Mixin selector
      official a Lu;a:Ljava/util/regex/Pattern;
      intermediary field_18956 Lnet/minecraft/class_4239;field_18956:Ljava/util/regex/Pattern;
      named FILE_NAME_WITH_COUNT Lnet/minecraft/util/PathUtil;FILE_NAME_WITH_COUNT:Ljava/util/regex/Pattern;
    • MAX_NAME_LENGTH

      private static final int MAX_NAME_LENGTH
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official b Lu;b:I
      intermediary field_33384 Lnet/minecraft/class_4239;field_33384:I
      named MAX_NAME_LENGTH Lnet/minecraft/util/PathUtil;MAX_NAME_LENGTH:I
    • RESERVED_WINDOWS_NAMES

      private static final Pattern RESERVED_WINDOWS_NAMES
      Mappings:
      Namespace Name Mixin selector
      official c Lu;c:Ljava/util/regex/Pattern;
      intermediary field_18955 Lnet/minecraft/class_4239;field_18955:Ljava/util/regex/Pattern;
      named RESERVED_WINDOWS_NAMES Lnet/minecraft/util/PathUtil;RESERVED_WINDOWS_NAMES:Ljava/util/regex/Pattern;
    • VALID_FILE_NAME

      private static final Pattern VALID_FILE_NAME
      Mappings:
      Namespace Name Mixin selector
      official d Lu;d:Ljava/util/regex/Pattern;
      intermediary field_40712 Lnet/minecraft/class_4239;field_40712:Ljava/util/regex/Pattern;
      named VALID_FILE_NAME Lnet/minecraft/util/PathUtil;VALID_FILE_NAME:Ljava/util/regex/Pattern;
  • Constructor Details

    • PathUtil

      public PathUtil()
  • Method Details

    • getNextUniqueName

      public static String getNextUniqueName(Path path, String name, String extension) throws IOException
      Returns a filename, prefixed with name, that does not currently exist inside path.
      Returns:
      a filename, prefixed with name, that does not currently exist inside path
      Throws:
      IOException - if creating the temporary directory fails, e.g. due to path not being a directory
      Implementation Note:
      This strips any illegal characters from name, then attempts to make a directory with the name and the extension. If this succeeds, the directory is deleted and the name with the extension is returned. If not, it appends (1) to the name and tries again until it succeeds.
      Mappings:
      Namespace Name Mixin selector
      official a Lu;a(Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
      intermediary method_19773 Lnet/minecraft/class_4239;method_19773(Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
      named getNextUniqueName Lnet/minecraft/util/PathUtil;getNextUniqueName(Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    • isNormal

      public static boolean isNormal(Path path)
      Returns whether path is already normalized.
      Returns:
      whether path is already normalized
      Mappings:
      Namespace Name Mixin selector
      official a Lu;a(Ljava/nio/file/Path;)Z
      intermediary method_20200 Lnet/minecraft/class_4239;method_20200(Ljava/nio/file/Path;)Z
      named isNormal Lnet/minecraft/util/PathUtil;isNormal(Ljava/nio/file/Path;)Z
    • isAllowedName

      public static boolean isAllowedName(Path path)
      Returns whether path does not contain reserved Windows file names.
      Returns:
      whether path does not contain reserved Windows file names
      API Note:
      This returns false for reserved names regardless of whether the platform the game is running is actually Windows. Note that this does not check for illegal characters or file permissions.
      Mappings:
      Namespace Name Mixin selector
      official b Lu;b(Ljava/nio/file/Path;)Z
      intermediary method_20201 Lnet/minecraft/class_4239;method_20201(Ljava/nio/file/Path;)Z
      named isAllowedName Lnet/minecraft/util/PathUtil;isAllowedName(Ljava/nio/file/Path;)Z
    • getResourcePath

      public static Path getResourcePath(Path path, String resourceName, String extension)
      Mappings:
      Namespace Name Mixin selector
      official b Lu;b(Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/String;)Ljava/nio/file/Path;
      intermediary method_20202 Lnet/minecraft/class_4239;method_20202(Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/String;)Ljava/nio/file/Path;
      named getResourcePath Lnet/minecraft/util/PathUtil;getResourcePath(Ljava/nio/file/Path;Ljava/lang/String;Ljava/lang/String;)Ljava/nio/file/Path;
    • getPosixFullPath

      public static String getPosixFullPath(String path)
      Returns the full path of path with directory separator normalized to /.
      Returns:
      the full path of path with directory separator normalized to /
      Mappings:
      Namespace Name Mixin selector
      official a Lu;a(Ljava/lang/String;)Ljava/lang/String;
      intermediary method_34675 Lnet/minecraft/class_4239;method_34675(Ljava/lang/String;)Ljava/lang/String;
      named getPosixFullPath Lnet/minecraft/util/PathUtil;getPosixFullPath(Ljava/lang/String;)Ljava/lang/String;
    • normalizeToPosix

      public static String normalizeToPosix(String path)
      Returns the normalized path of path with directory separator normalized to /.
      Returns:
      the normalized path of path with directory separator normalized to /
      Mappings:
      Namespace Name Mixin selector
      official b Lu;b(Ljava/lang/String;)Ljava/lang/String;
      intermediary method_34676 Lnet/minecraft/class_4239;method_34676(Ljava/lang/String;)Ljava/lang/String;
      named normalizeToPosix Lnet/minecraft/util/PathUtil;normalizeToPosix(Ljava/lang/String;)Ljava/lang/String;
    • split

      public static com.mojang.serialization.DataResult<List<String>> split(String path)
      Returns path split by /, or an error result if the path is invalid.

      All path segments must be a valid file name. Additionally, . and .. are forbidden.

      Returns:
      path split by /, or an error result if the path is invalid
      Mappings:
      Namespace Name Mixin selector
      official c Lu;c(Ljava/lang/String;)Lcom/mojang/serialization/DataResult;
      intermediary method_46346 Lnet/minecraft/class_4239;method_46346(Ljava/lang/String;)Lcom/mojang/serialization/DataResult;
      named split Lnet/minecraft/util/PathUtil;split(Ljava/lang/String;)Lcom/mojang/serialization/DataResult;
    • getPath

      public static Path getPath(Path root, List<String> paths)
      Returns paths resolved as a path from root.

      If paths is empty, this returns root.

      Returns:
      paths resolved as a path from root
      Mappings:
      Namespace Name Mixin selector
      official a Lu;a(Ljava/nio/file/Path;Ljava/util/List;)Ljava/nio/file/Path;
      intermediary method_46344 Lnet/minecraft/class_4239;method_46344(Ljava/nio/file/Path;Ljava/util/List;)Ljava/nio/file/Path;
      named getPath Lnet/minecraft/util/PathUtil;getPath(Ljava/nio/file/Path;Ljava/util/List;)Ljava/nio/file/Path;
    • isFileNameValid

      public static boolean isFileNameValid(String name)
      Returns whether name is a valid file name.
      Returns:
      whether name is a valid file name
      API Note:
      A valid file name contains only ASCII lowercase alphabets, ASCII digits, a dot, or an underscore. Unlike Identifier paths, hyphens are not allowed.
      Mappings:
      Namespace Name Mixin selector
      official d Lu;d(Ljava/lang/String;)Z
      intermediary method_46347 Lnet/minecraft/class_4239;method_46347(Ljava/lang/String;)Z
      named isFileNameValid Lnet/minecraft/util/PathUtil;isFileNameValid(Ljava/lang/String;)Z
    • validatePath

      public static void validatePath(String[] paths)
      Validates that paths is not empty and does not contain invalid segments (such as ., .., or otherwise invalid names).
      Throws:
      IllegalArgumentException - when the paths are invalid
      Mappings:
      Namespace Name Mixin selector
      official a Lu;a([Ljava/lang/String;)V
      intermediary method_46345 Lnet/minecraft/class_4239;method_46345([Ljava/lang/String;)V
      named validatePath Lnet/minecraft/util/PathUtil;validatePath([Ljava/lang/String;)V
    • createDirectories

      public static void createDirectories(Path path) throws IOException
      Throws:
      IOException
      Mappings:
      Namespace Name Mixin selector
      official c Lu;c(Ljava/nio/file/Path;)V
      intermediary method_47525 Lnet/minecraft/class_4239;method_47525(Ljava/nio/file/Path;)V
      named createDirectories Lnet/minecraft/util/PathUtil;createDirectories(Ljava/nio/file/Path;)V