Extracting files and directories from a provided list into separate lists
Most is said about this code in the other answer, but there is a simplification which can be used to beautify this code a lot.  

The Directory class has two methods which returns IEnumerable&lt;string&gt; namely EnumerateFiles() and EnumerateDirectories().  

The results of the calls to this methods can be used to call AddRange() on the ShortFileList and FullList.  

Like so  

List&lt;string&gt; fullList = new List&lt;string&gt;(LoadFiles("patch.txt"));
List&lt;string&gt; shortCatalogList = new List&lt;string&gt;();
List&lt;string&gt; shortFileList = new List&lt;string&gt;();


for (int i = 0; i &lt; fullList.Count; i++)
{

    if (System.IO.Path.HasExtension(fullList[i]))
    {
        shortFileList.Add(fullList[i]);
        continue;
    }

    shortCatalogList.Add(fullList[i]);

    var files = Directory.EnumerateFiles(fullList[i]);
    shortFileList.AddRange(files);

    var directories = Directory.EnumerateDirectories(fullList[i]);
    fullList.AddRange(directories);

}