public static List<string> GetFileNames(string path, string data)
{
List<string> filenames = new List<string>();
if (!string.IsNullOrEmpty(data))
{
List<string> parts = data.Split(',').ToList();
string filename = string.Empty;
do
{
filename = string.Format("{0}{1}{2}", filename, (filename.Length > 0)?",":"", parts[0]);
if (File.Exists(System.IO.Path.Combine(path, filename)))
{
filenames.Add(filename);
filename = string.Empty;
}
parts.RemoveAt(0);
} while(parts.Count > 0);
}
return filenames;
}
Sample usage:
var files = "blah blah,a.xyz,blahblah.xyz";
List<string> filenames = GetFileNames(@"C:\mypath", files);
Caveat - the files must exist in order to establish the appropriate names, which, on hind sight, may not be appropriate.
Alternative for you - CHANGE the delimiter character to something that isn't a valid filename character, such as an asterisk, pipe symbol, question mark, etc. At that point, you can simply use the
string.Split
method.