Home  |  Created on - November 2005


Validate Sharepoint filename onupload

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; 
}