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

Gary Gregory commented on IO-555:
---------------------------------

(On vacation with the fam in NYC if anyone wants to meet for coffee.)

- "Also one cannot use System.out in a library routine."
Sorry about that, my mistake

- "Is throwing an Exception such as IllegalArgumentException the best way to do 
this?"
If we go this way, I suggests we change the method name to be prefixed with 
"check", just like the JRE has "checkBounds" methods in some places. "assert" 
would be another possible prefix but that smells too much of unit tests.

- "Note that Windows treats some names specially, for example CON, NUL, PRN."
Right, the enum needs a "String[] getReservedFileNames()"

Gary

> 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