Q:

Except with LIKE condition in LINQ

I have a list of strings which holds file paths. 
List<string> allFilesWithPathList = new List<string>();

allFilesWithPathList.Add(@"G:\Test\A.sql");
allFilesWithPathList.Add(@"G:\Test\B.sql");
allFilesWithPathList.Add(@"G:\Test\C.sql");

return allFilesWithPathList;

I have another list which holds a subset of files – but it has only the file name; not the path.
List<string> excludeList = new List<string>();
excludeList.Add("B.sql");

Now I need to get files from allFilesWithPathList that is not present in excludeList. Currently I am doing the following, using EXCEPT, after creating another list with file names only.
List<string> allFileNamesOnlyList = new List<string>();
foreach (string fileNameWithPath in allFilesWithPathList)
{
    //Remove path and get only file name
    int pos = fileNameWithPath.LastIndexOf(@"\") + 1;
    string value = fileNameWithPath.Substring(pos, fileNameWithPath.Length - pos);
    allFileNamesOnlyList.Add(value);
}

//EXCEPT logic
List<string> eligibleListToProcess = allFileNamesOnlyList.Except(excludeList).ToList();

What is the best way in LINQ to get this logic working without introducing another list like the above?
Note: I am using .Net 4.5
Complete code
class Program
{
    static void Main(string[] args)
    {
        List<string> allFilesWithPathList = GetAllFilesWithPath();

        List<string> excludeList = new List<string>();
        excludeList.Add("B.sql");

        List<string> allFileNamesOnlyList = new List<string>();
        foreach (string fileNameWithPath in allFilesWithPathList)
        {
            //Remove path and get only file name
            int pos = fileNameWithPath.LastIndexOf(@"\") + 1;
            string value = fileNameWithPath.Substring(pos, fileNameWithPath.Length - pos);
            allFileNamesOnlyList.Add(value);
        }

        //EXCEPT logic
        List<string> eligibleListToProcess = allFileNamesOnlyList.Except(excludeList).ToList();

        //Print all eligible files
        foreach (string s in eligibleListToProcess)
        {
            Console.WriteLine(s);
        }
        Console.ReadLine();
    }

    public static List<string> GetAllFilesWithPath()
    {
        List<string> allFilesWithPathList = new List<string>();

        allFilesWithPathList.Add(@"G:\Test\A.sql");
        allFilesWithPathList.Add(@"G:\Test\B.sql");
        allFilesWithPathList.Add(@"G:\Test\C.sql");

        return allFilesWithPathList;
    }
}

A:

allFilesWithPathList.Where(path => !allFileNamesOnlyList.Contains(Path.GetFileName(path));

There are two improvements here. 

Path.GetFileName is much better than splitting the path yourself.
IEnumerable.Where in conjunction with ICollection.Contains to actually query the list in a succinct and easy to read way.

A:

This should work
allFilesWithPathList.Where(x => !excludeList.Any(y => x.EndsWith(y)))

