PathTooLongException no código c #

eu tenho o seguinte código:

 public static void Serialize()
    {

        List<string> dirs = FileHelper.GetFilesRecursive(fileDirectoryPath);
        List<string> dirFiles = new List<string>();
        foreach (string p in dirs)
        {
            string path = p;

            string lastAccessTime = File.GetLastAccessTime(path).ToString();


            bool DirFile = File.Exists(path);
            FileInfo fInf = new FileInfo(path);
            long lengthInk = fInf.Length / 1024;

            DateTime lastWriteTime = File.GetLastWriteTime(p);
            dirFiles.Add(p + "|" + lastAccessTime.ToString() + "|" + DirFile.ToString() + "|" + lastWriteTime.ToString() + "|" + lengthInk.ToString() + " kb");


        }

Eu continuo acertando um erro PathTooLongException com a seguinte linha:

string lastAccessTime = File.GetLastAccessTime(path).ToString();

O aplicativo perfura em uma unidade e encontra todos os arquivos / pastas com a unidade. Eu não posso mudar esse caminho, mas como está acima de 260 caracteres ... como contornar isso?

questionAnswers(4)

yourAnswerToTheQuestion