2016-06-27 4 views
0

У меня проблема с сохранением. Мне нужно изображение, какой путь являются длиннее 260 символов (К сожалению, они должны быть так долго не моя идея.!)Как заставить максимальную длину пути более чем с 260 символами

Я нашел это здесь: https://blogs.msdn.microsoft.com/bclteam/2007/03/26/long-paths-in-net-part-2-of-3-long-path-workarounds-kim-hamilton/

Я попытался \ \ но не работает.

Мой путь: "\\? \ D: \ Temp1 \ Data \" В этом случае Visual Studio говорит, что существует неизвестная escape-последовательность.

Код:

RootDir = "\\?\"+RootDir; 

Исключение: Нет. Visual Studio просто говорит, что есть неизвестный escape sequenz

Затем я попробовал @ "\\? \ D: \ Temp1 \ Data" Visual Studio говорит, что есть знак, который не разрешен. Наверное, это «?» Код:

RootDir = @"\\?\"+RootDir; 

Исключение: недопустимых символов в пути. Может быть, это помогает в этом случае: System.Security.Permissions.FileIOPermission.CheckIllegalCharacters (String [] ул)

И когда я пытаюсь его без \\ \ есть исключение окна, которое говорит о том, что путь только? позволяет использовать 260 символов.

Какая ошибка/я сделал?

Надеюсь, вы можете мне помочь.

С наилучшими пожеланиями Ричард

То, что я пробовал:

Эти ссылки: https://blogs.msdn.microsoft.com/bclteam/2007/03/26/long-paths-in-net-part-2-of-3-long-path-workarounds-kim-hamilton/

https://msdn.microsoft.com/en-us/library/aa365247.aspx

+2

Видя код _exact_ и соответствующее исключение для каждого случая было бы полезно. –

+1

Вам нужно добавить '\\? \\', а не '\? \\'. – Luaan

+0

Sry, я сделал \\? \ Not the \? \. Stackoverflow проглотил один. Я также изменил его в вопросе – Evosoul

ответ

0

Long Приставка путь имеет две косые черты, а не один

string longPath = @”\\?\” + fileName; 

UDT: Посмотрите на эту question и это lib

Также проверьте this

Согласно этим постам, вы Шоул использовать WinAPI для обработки длинных путей

+0

Sry, я сделал \\? \ Not the \? \. Stackoverflow проглотил один. Я изменил его в вопросе – Evosoul

+0

Спасибо, что работала библиотека – Evosoul

0

По ссылке вы в курсе, вам нужно написать путь с двумя обратными косыми чертами перед вопросительным знаком

Таким образом, путь должен выглядеть так:

@"\\?\D:\Temp1\Data" 

Или Это

"\\?\D:\Temp1\Data" 
+0

Sry, я сделал \\? \ Not the \? \. Stackoverflow проглотил один. Я изменил его в вопросе – Evosoul

+0

Это просто мысль, вы пробовали использовать '\\\? \'? Я имею в виду, что вы избежите обратной косой черты, тогда вы избежите вопросительного знака. –

Смежные вопросы