in Source/Tx.Bond/Internal/PathUtils.cs [31:69]
public static bool IsValidPath(string path)
{
if (string.IsNullOrWhiteSpace(path))
{
return false;
}
var directory = Path.GetDirectoryName(path);
if (directory == null || !Directory.Exists(directory))
{
return false;
}
var filename = Path.GetFileName(path);
if (string.IsNullOrEmpty(filename))
{
return true;
}
var invalidCharacters = Path.GetInvalidFileNameChars()
.Where(i => i != '*' && i != '?')
.ToArray();
if (filename.Any(c => invalidCharacters.Contains(c)))
{
return false;
}
if (filename.Contains('*') || filename.Contains('?'))
{
return true;
}
var fileExists = File.Exists(path);
return fileExists;
}