commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Gregory (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (IO-555) Add a FileSystem enum to provide legal file names
Date Fri, 17 Nov 2017 22:54:00 GMT

    [ 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)

Mime
View raw message