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

Sebb commented on IO-555:
-------------------------

As per Matt's comment on the dev list, the code is not about which OS is in 
use, but which file system.
A single OS may have multiple file systems of different types.

So {{getCurrent()}} does not really make sense; the choice of enum needs to be 
done differently.

Also one cannot use System.out in a library routine.

Note that Windows treats some names specially, for example CON, NUL, PRN.
These should probably also be rejected.

Note that it might well be as cheap to use CharSequence instead of String for 
toLegalFileName().
This is because String.toCharArray has to create a copy of the String contents 
as well as allocating a new char[] array.


> Add a FileSystem enum to provide legal file names
> -------------------------------------------------
>
>                 Key: IO-555
>                 URL: https://issues.apache.org/jira/browse/IO-555
>             Project: Commons IO
>          Issue Type: Improvement
>            Reporter: Gary Gregory
>            Assignee: Gary Gregory
>             Fix For: 2.7
>
>
> Add {{org.apache.commons.io.FilenameUtils.isIllegalWindowsFileName(char)}}.
> {code:java}
>     /**
>      * Checks whether the given character is illegal in a Windows file names.
>      * <p>
>      * The illegal character are:
>      * </p>
>      * <ul>
>      * <li>< (less than</li>
>      * <li>> (greater than</li>
>      * <li>: (colon</li>
>      * <li>" (double quote</li>
>      * <li>/ (forward slash</li>
>      * <li>\ (backslash</li>
>      * <li>| (vertical bar or pipe</li>
>      * <li>? (question mark</li>
>      * <li>* (asterisk</li>
>      * <li>ASCII NUL (0)</li>
>      * <li>Integer characters 1 through 31</li>
>      * <li>There may be other characters that the file name does not allow. 
> Please see
>      * <a 
> href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx">Naming
>  Files, Paths,
>      * and Namespaces</a></li>
>      * </ul>
>      * 
>      * @see <a 
> href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx">Naming
>  Files,
>      *      Paths, and Namespaces</a>
>      * @param c
>      *            the character to check
>      * @return whether the give character is legal
>      * @since 2.7
>      */
> {code}
> I use this method as a building block to create file names based on Strings 
> from other sources.
> A further contribution could be: {{String toLegalWindowsFileName(String 
> input, char replacementChar)}}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to