Question: I am trying to use multiple characters as the delimeter in ColdFusion list like `,`( comma and blank) but it ignores the blank.

I then tried to use:

```
<cfset title = listappend( title, a[ idx ].title, "#Chr(44)##Chr(32)#" ) /> 

```

But it also ignores the blank and without blanks the list items to diffucult to read.

Any ideas?

Answer: 
I believe the confusion comes from the fact that the effective permission depends on the directory permissions and the file permissions. 

If the user has e.g. the `Write` permission for a file but not the `Modify` permission for the containing directory he has effectively not write permission to that file. See the full matix of [File and folder permissions](https://technet.microsoft.com/en-us/library/dd349321%28v=ws.10%29.aspx).

To do the check in Java you can use the [FileSystemProvider.checkAccess](http://docs.oracle.com/javase/8/docs/api/java/nio/file/spi/FileSystemProvider.html#checkAccess-java.nio.file.Path-java.nio.file.AccessMode...-) method to check the permission of

Assume following files and permissions (all permissions out of scope are removed to make it more clear). The permissions were retrieved with the `icacls` tool.

```
c:\ BUILTIN\Users:(OI)(CI)(RX) - read + execute permission

c:\bar BUILTIN\Users:(RX) - read + execute permission

c:\foo BUILTIN\Users:(F) - full permission

```

Sample snippet for demonstration.

```
public class AccessCheckDemo {
    public static void main(String[] args) throws IOException {
        String[] files = {"c:/foo", "c:/bar"};
        for (String file : files) {
            Path path = Paths.get(file);
            System.out.println("check " + path);
            System.out.println("file      Files.isWritable: "
                    + Files.isWritable(path));
            System.out.println("directory Files.isWritable: "
                    + Files.isWritable(path.getParent()));
            System.out.println();
        }
    }
}

```

output

```
check c:\foo
file      Files.isWritable: true
directory Files.isWritable: false

check c:\bar
file      Files.isWritable: true
directory Files.isWritable: false

```

Even `BUILTIN\Users` have `full permissions` on file `c:\foo` they cannot write to this file, as the permission of the directory `c:\` does not permit it (only read + execute permission for this group on `c:\`).

As already mentioned by badsamaritan ([JDK-7190897](https://bugs.openjdk.java.net/browse/JDK-7190897)) this doesn't work properly in Java 7.
> 
> any suggestions on how I can programmatically work out the reason for isWritable() (or isReadable()) failing
> 
> 
> 

Maybe it is real bug, not your fault:

<https://bugs.openjdk.java.net/browse/JDK-8034863>

or

<http://bugs.java.com/view_bug.do?bug_id=7190897>

---

When talking about Windows permissions it is worth mentioning that they are indeed a bit strange (even Microsoft admits it): DENY has stronger priority than ALLOW, so if you allow some users to read particular file and also deny everyone every permission this deny 'overrides' everything and no one (including owner) can't read this file. That's why you don't see DENY permission selected in ACLs very often.