[ 
https://issues.apache.org/jira/browse/IO-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12617409#action_12617409
 ] 

Attila Szegedi commented on IO-168:
-----------------------------------

Folks,

file.getCanonicalFile().equals(file.getAbsoluteFile())

won't return true only for a symlink. It will also return true for a file that 
has at least one symlinked directory in its path.

This will work as expected though:

File canonicalDir = file.getParentFile().getCanonicalFile();
File fileInCanonicalDir = new File(canonicalDir, file.getName());
return 
fileInCanonicalDir.getCanonicalFile().equals(fileInCanonicalDir.getAbsoluteFile());

Attila.

> Symbolic links (symlinks) followed when deleting directory.
> -----------------------------------------------------------
>
>                 Key: IO-168
>                 URL: https://issues.apache.org/jira/browse/IO-168
>             Project: Commons IO
>          Issue Type: Bug
>          Components: Utilities
>    Affects Versions: 1.4
>         Environment: Linux only (symlinks required for bug to manifest)
>            Reporter: Apostolos Lerios
>
> If 'dlink' is a symbolic link to a directory 'dir', and FileUtils.forceDelete 
> is called on dlink, then here is what happens:
> 1) the contents of 'dir' are emptied (the link is followed).
> 2) 'dir' continues to exist (but is empty).
> 3) 'dlink' is removed.
> The correct behavior is to simply remove 'dlink' without following it and 
> thus without altering the contents of 'dir' (or 'dir' itself).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to