Home | Created on - November 2005
Some characters are legal for FAT or NTFS files but illegal for files in
Sharepoint documentlibraries. Using the regular upload UI for Sharepoint you'll
encounter a rather unpleasant validation error when uploading a file with funky
characters. Using the object model will give you a good ole exception.
Have seen a lot of approaches to solving this problem, and implemented a
couple myself. Also noticed a method on the SPEncode static class that
enabled a clean approach to the problem
private string CleanForUrlAndFileNameUse(string dirtyFileName)
{
char[] dirtyChars = dirtyFileName.ToCharArray();
foreach (char c in dirtyChars){
if (!SPEncode.IsLegalCharInUrl(c))
dirtyFileName = dirtyFileName.Replace(c.ToString(),'');
}
// Spaces are not appreciated
dirtyFileName = dirtyFileName.Replace(" ", "");
// double punctuation marks causes validation error
while(dirtyFileName.IndexOf("..") != -1)
dirtyFileName = dirtyFileName.Replace("..", ".");
return dirtyFileName;
}