Monday, November 08, 2010 at 12:00 AM.
river2Suite.podcasts.cleanFilename
on cleanFilename (fname) { <<Changes <<3/28/08; 11:12:30 AM by DW <<If a file name is too long, don't drop the extension, because without the extension the OS won't know what to do with the file. <<9/19/05; 5:45:19 PM by DW <<Legal characters for DOS file names include the following: <<Upper case letters A-Z <<Numbers 0-9 <<Space (though trailing spaces are considered to be padding and not a part of the file name) <<! # $ % & ( ) - @ ^ _ ` { } ~ ' <<Values 128-255 if system.environment.isWindows { local (i, ch, fllegal, s=""); for i = 1 to sizeof (fname) { ch = fname [i]; fllegal = true; if not string.isalpha (ch) { if not string.isnumeric (ch) { if (number (char (ch)) < 128) { if not ({' ', '!', '#', '%', '.', ',', '&', '(', ')', '-', '@', '_', '`', '{', '}', '~', "'"} contains ch) { fllegal = false}}}}; if fllegal { s = s + ch}}; return (s)} else { fname = string.replaceall (fname, ":", "-"); fname = string.replaceall (fname, "!", ""); fname = string.replaceall (fname, "|", ""); if sizeof (fname) >= 32 { //too long! if fname contains "." { local (ext = "." + string.lastfield (fname, ".")); fname = string.mid (fname, 1, 31 - sizeof (ext)) + ext} //3/28/08 by DW else { fname = string.mid (fname, 1, 31)}}; return (fname)}}; bundle { //test code dialog.alert (cleanFilename ("030708-clinton-calla.source.prod_affiliate.91.mp3"))}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.