मैं इसका उपयोग करता हूं:
public static bool IsValidFileName(string name) {
if(string.IsNullOrWhiteSpace(name)) return false;
if(name.Length > 1 && name[1] == ':') {
if(name.Length < 4 || name.ToLower()[0] < 'a' || name.ToLower()[0] > 'z' || name[2] != '\\') return false;
name = name.Substring(3);
}
if(name.StartsWith("\\\\")) name = name.Substring(1);
if(name.EndsWith("\\") || !name.Trim().Equals(name) || name.Contains("\\\\") ||
name.IndexOfAny(Path.GetInvalidFileNameChars().Where(x=>x!='\\').ToArray()) >= 0) return false;
return true;
}
सब कुछ लेकिन आरक्षित नाम, अनुमति और लंबाई प्रतिबंधों का ध्यान रखना चाहिए। यह सापेक्ष और पूर्ण फ़ाइलनाम दोनों को स्वीकार करता है।