On Wed, Nov 15, 2017 at 12:53 PM, Jan Matèrne (jhm) <apa...@materne.de> wrote:
> s/MAC_OSX_9/MAC_OS_9/ > What about older versions of MacOS? > UNKNOWN(31,1024) // smallest values for safety > Are there differences between FAT,FAT32,NTFS,reiserfs,... ? > Here you go: https://en.wikipedia.org/wiki/Comparison_of_file_systems This makes me wonder of the enum name should not be OS name but the FS name like FAT32. Gary > > Jan > > > > -----Ursprüngliche Nachricht----- > > Von: Gary Gregory [mailto:garydgreg...@gmail.com] > > Gesendet: Mittwoch, 15. November 2017 18:34 > > An: Commons Developers List > > Betreff: Re: [io] New enum for file system info? > > > > On Wed, Nov 15, 2017 at 10:30 AM, Gary Gregory <garydgreg...@gmail.com> > > wrote: > > > > > I find myself writing and using non-OO code around things like: > > > > > > private final int MAX_FILE_NAME_LENGTH_WINDOWS = 255; > > > private final int MAX_FILE_NAME_LENGTH_LINUX = 255; > > > private final int MAX_FILE_NAME_LENGTH_MAC = 255; > > > private final int MAX_FILE_NAME_LENGTH_MAC_OS9 = 31; > > > > > > private final int MAX_FILE_PATH_LENGTH_WINDOWS = 32000; > > > private final int MAX_FILE_PATH_LENGTH_LINUX = 4096; > > > private final int MAX_FILE_PATH_LENGTH_MAC = 1024; > > > > > > But that is not even right for older Macs which limits file names to > > > 31 chars. > > > > > > I was thinking of creating a new enum: > > > > > > package org.apache.commons.io; > > > > > > public enum FileSystem { > > > > > > LINUX(255, 4096), > > > MAC_OSX(255, 1024), > > > MAC_OSX_9(31, 1024), > > > WINDOWS(255, 32000); > > > > > > private final long maxFileLength; > > > private final long maxPathLength; > > > > > > private FileSystem(long maxFileLength, long maxPathLength) { > > > this.maxFileLength = maxFileLength; > > > this.maxPathLength = maxPathLength; > > > } > > > > > > public long getMaxFileLength() { > > > return maxFileLength; > > > } > > > > > > public long getMaxPathLength() { > > > return maxPathLength; > > > } > > > > > > public boolean isIllegalFileName(char ch) { > > > ... > > > } > > > > > > public String toLegalFileName(String candidate, char replacement) > > { > > > ... > > > } > > > > > > } > > > > > > I would also move the new method from https://issues.apache.org/ > > > jira/browse/IO-555 there and rename it "isIllegalFileName(char)" > > > > > > Thoughts? > > > > > > > The enum would obviously need a "public static FileSystem getCurrent()" > > method. > > > > Gary > > > > > > > > > > Gary > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > >