You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Jiangwei Liu (Jira)" <ji...@apache.org> on 2022/12/30 09:11:00 UTC

[jira] [Commented] (IO-783) Fetching file extension using FilenameUtils.getExtension method throws error in windows machine

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

Jiangwei Liu commented on IO-783:
---------------------------------

Hi Samraj,

  you can review the source of indexOfExtension(String fileName) method ,  this method should validate the fileName string, 

there is a special handling for NTFS ADS: Don't accept colon in the fileName.

> Fetching file extension using FilenameUtils.getExtension method throws error in windows machine
> -----------------------------------------------------------------------------------------------
>
>                 Key: IO-783
>                 URL: https://issues.apache.org/jira/browse/IO-783
>             Project: Commons IO
>          Issue Type: Bug
>          Components: Utilities
>    Affects Versions: 2.7, 2.8.0, 2.9.0, 2.10.0, 2.11.0
>         Environment: Run the below line of code in windows environment.
> String fileName = FilenameUtils.getExtension("Top of Information Store\\Archive\\Informational-severity alert: eDiscovery search started or exported.msg");
>         System.out.println(fileName);
>  
> We are getting the error,
> Exception in thread "main" java.lang.IllegalArgumentException: NTFS ADS separator (':') in file name is forbidden.
>     at org.apache.commons.io.FilenameUtils.indexOfExtension(FilenameUtils.java:737)
>     at org.apache.commons.io.FilenameUtils.getExtension(FilenameUtils.java:1057)
>            Reporter: Samraj
>            Priority: Blocker
>
> Hi Team,
> I am using FilenameUtils.getExtension method to get the file extension from the file path ( Available as string). Due to one of the bug fix happen after 2.7 breaks the code. 
> Run the below line of code in windows environment.
> String fileName = FilenameUtils.getExtension("Top of Information Store\\Archive
> Informational-severity alert: eDiscovery search started or exported.msg");
>         System.out.println(fileName);
>  
> We are getting the error,
> Exception in thread "main" java.lang.IllegalArgumentException: NTFS ADS separator (':') in file name is forbidden.
>     at org.apache.commons.io.FilenameUtils.indexOfExtension(FilenameUtils.java:737)
>     at org.apache.commons.io.FilenameUtils.getExtension(FilenameUtils.java:1057)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)