Package org.eclipse.jgit.util
Class FS_Win32
- java.lang.Object
-
- org.eclipse.jgit.util.FS
-
- org.eclipse.jgit.util.FS_Win32
-
- Direct Known Subclasses:
FS_Win32_Cygwin
public class FS_Win32 extends FS
FS implementation for Windows- Since:
- 3.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.jgit.util.FS
FS.Attributes, FS.ExecutionResult, FS.FileStoreAttributes, FS.FSFactory, FS.LockToken
-
-
Field Summary
-
Fields inherited from class org.eclipse.jgit.util.FS
DETECTED, NO_ENTRIES
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canExecute(File f)
Determine if the file is executable (or not).protected File
discoverGitExe()
Discover the path to the Git executable.FS.Attributes
getAttributes(File path)
Get the file attributes we care for.boolean
isCaseSensitive()
Is this file system case sensitiveWorkingTreeIterator.Entry[]
list(File directory, FileTreeIterator.FileModeStrategy fileModeStrategy)
Enumerates children of a directory.FS
newInstance()
Create a new instance of the same type of FS.boolean
retryFailedLockFileCommit()
Does this file system have problems with atomic renames?ProcessBuilder
runInShell(String cmd, String[] args)
Initialize a ProcessBuilder to run a command using the system shell.boolean
setExecute(File f, boolean canExec)
Set a file to be executable by the user.boolean
supportsExecute()
Does this operating system and JRE support the execute flag on files?protected File
userHomeImpl()
Determine the user's home directory (location where preferences are).-
Methods inherited from class org.eclipse.jgit.util.FS
createNewFile, createNewFileAtomic, createSymLink, delete, detect, detect, discoverGitSystemConfig, execute, exists, fileAttributes, findHook, getFileStoreAttributes, getGitSystemConfig, internalRunHookIfPresent, isDirectory, isFile, isHidden, isSymLink, lastModified, lastModifiedInstant, lastModifiedInstant, length, normalize, normalize, readPipe, readPipe, readSymLink, relativize, resolve, resolveGrandparentFile, runHookIfPresent, runHookIfPresent, runProcess, runProcess, searchPath, setAsyncFileStoreAttributes, setGitSystemConfig, setHidden, setLastModified, setLastModified, setUserHome, supportsAtomicCreateNewFile, supportsSymlinks, userHome
-
-
-
-
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 classFS
- 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 classFS
- 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 classFS
- 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 classFS
- 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 classFS
- 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 classFS
- 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.
-
discoverGitExe
protected File discoverGitExe()
Discover the path to the Git executable.- Specified by:
discoverGitExe
in classFS
- 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 classFS
- 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 classFS
- 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 classFS
- Parameters:
path
- aFile
object.- Returns:
- the file attributes we care for.
-
-