У меня есть следующий код:PathTooLongException в C# код
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");
}
Я попадающий ошибку PathTooLongException с помощью следующей строки:
string lastAccessTime = File.GetLastAccessTime(path).ToString();
приложения сверл в привод и находит все файлы/папки с приводом. Я не могу изменить этот путь, но поскольку он превышает 260 символов ... как обойти это?
использование окон api [http://galratner.com/blogs/net/archive/2011/02/13/getting-around-pathtoolongexception-on-file-move-with-windows-native-api.aspx ] (http://galratner.com/blogs/net/archive/2011/02/13/getting-around-pathtoolongexception-on-file-move-with-windows-native-api.aspx) – julian
Мои собственные и другие ответы [здесь] (http://stackoverflow.com/a/29605805/589059) предлагают некоторые библиотеки-обертки, которые вы можете использовать для работы с длинными путями. – rkagerer
Возможный дубликат [Как избежать System.IO.PathTooLongException?] (Http://stackoverflow.com/questions/530109/how-to-avoid-system-io-pathtoolongexception) – Deantwo