Class FS_Win32

  • Direct Known Subclasses:
    FS_Win32_Cygwin

    public class FS_Win32
    extends FS
    FS implementation for Windows
    Since:
    3.0
    • Constructor Detail

      • FS_Win32

        public FS_Win32()
        Constructor
      • FS_Win32

        protected FS_Win32​(FS src)
        Constructor
        Parameters:
        src - instance whose attributes to copy
    • Method Detail

      • newInstance

        public FS newInstance()
        Create a new instance of the same type of FS.
        Specified by:
        newInstance in class FS
        Returns:
        a new instance of the same type of FS.
      • supportsExecute

        public boolean supportsExecute()
        Does this operating system and JRE support the execute flag on files?
        Specified by:
        supportsExecute in class FS
        Returns:
        true if this implementation can provide reasonably accurate executable bit information; false otherwise.
      • canExecute

        public boolean canExecute​(File f)
        Determine if the file is executable (or not).

        Not all platforms and JREs support executable flags on files. If the feature is unsupported this method will always return false.

        If the platform supports symbolic links and f is a symbolic link this method returns false, rather than the state of the executable flags on the target file.

        Specified by:
        canExecute in class FS
        Parameters:
        f - abstract path to test.
        Returns:
        true if the file is believed to be executable by the user.
      • setExecute

        public boolean setExecute​(File f,
                                  boolean canExec)
        Set a file to be executable by the user.

        Not all platforms and JREs support executable flags on files. If the feature is unsupported this method will always return false and no changes will be made to the file specified.

        Specified by:
        setExecute in class FS
        Parameters:
        f - path to modify the executable status of.
        canExec - true to enable execution; false to disable it.
        Returns:
        true if the change succeeded; false otherwise.
      • isCaseSensitive

        public boolean isCaseSensitive()
        Is this file system case sensitive
        Specified by:
        isCaseSensitive in class FS
        Returns:
        true if this implementation is case sensitive
      • retryFailedLockFileCommit

        public boolean retryFailedLockFileCommit()
        Does this file system have problems with atomic renames?
        Specified by:
        retryFailedLockFileCommit in class FS
        Returns:
        true if the caller should retry a failed rename of a lock file.
      • list

        public WorkingTreeIterator.Entry[] list​(File directory,
                                                FileTreeIterator.FileModeStrategy fileModeStrategy)
        Enumerates children of a directory.
        Overrides:
        list in class FS
        Parameters:
        directory - to get the children of
        fileModeStrategy - to use to calculate the git mode of a child
        Returns:
        an array of entries for the children
      • discoverGitExe

        protected File discoverGitExe()
        Discover the path to the Git executable.
        Specified by:
        discoverGitExe in class FS
        Returns:
        the path to the Git executable or null if it cannot be determined.
      • userHomeImpl

        protected File userHomeImpl()
        Determine the user's home directory (location where preferences are).
        Overrides:
        userHomeImpl in class FS
        Returns:
        the user's home directory; null if the user does not have one.
      • runInShell

        public ProcessBuilder runInShell​(String cmd,
                                         String[] args)
        Initialize a ProcessBuilder to run a command using the system shell.
        Specified by:
        runInShell in class FS
        Parameters:
        cmd - command to execute. This string should originate from the end-user, and thus is platform specific.
        args - arguments to pass to command. These should be protected from shell evaluation.
        Returns:
        a partially completed process builder. Caller should finish populating directory, environment, and then start the process.
      • getAttributes

        public FS.Attributes getAttributes​(File path)
        Get the file attributes we care for.
        Overrides:
        getAttributes in class FS
        Parameters:
        path - a File object.
        Returns:
        the file attributes we care for.