2010-07-01 7 views
0

내가 새 폴더asp.net MVC 파일 경로 문제

을 만들려면이 사용하고
System.IO.Directory.CreateDirectory(@" + somevariable); 

건입니다 내가 폴더 C를 입력 할 때 : \ newfolder \ newfolder 텍스트 상자와받을려고 컨트롤러의 값은 이중 슬래시 (\) c:\\newfolder\\newfolder으로 바뀝니다. 내가 어떻게 둘째하려면 string.replace 또한 당신이 \\로 대체있어 확실

string strText = OrganMeta.vcr_MetaValue; 
    string gf = strText.Replace("\\", @"\"); 

답변

2

"\\"는 한 문자의 문자열 인 백 슬래시와 같습니다. @ "\"는 단일 문자 인 백 슬래시와 동일합니다.

그래서 Replace 메서드는 한 형식의 백 슬래시를 다른 형식으로 바꿉니다. 사실에만있을 때

string gf = strText.Replace(@"\\", @"\"); 

또는

string gf = strText.Replace("\\\\", "\\"); 

는 지금까지 폴더 것은 간다, 앤디는 바로, 그것은 IDE에서 이중 백 슬래시가 표시됩니다 :

이 시도 문자열에 하나. Directory.CreateDirectory()가 호출 될 때 오류가 있습니까? 또는 폴더가 생성 되었습니까?

1

\\와 \를 교체하기위한 작동하지 않는 경로

에 오는 \ 따옴표를 방지 할 수? 변수 위로 마우스를 가져 가면 하나의 \가 있어야하는 곳에 \\ 표시가 나타납니다. 그러나 텍스트 시각화 프로그램에서 볼 경우 제대로 표시됩니다.

string.replace가 의미하는 것이 확실하지 않은지 ... ?? 작동하지 않는 코드의 예를 들려 줄 수 있습니까?

+0

건은 그 경우에 나는 하드 코드 C : \ newfolder \ 그것을 작동 newfolder하지만 난 그렇게하지 않으면 그것은하지 작업을 수행하고 그것은 내가 테스트 MVC2를 만들었습니다 – maztt

+0

문자열에 \\을 보여줍니다 프로젝트는 단일 텍스트 상자와 FormCollection을받는 컨트롤러로 구성됩니다. 제출 된 텍스트의 값을 ViewData에 입력하고 View에 올바른 값을 표시하면 문자열에 '\'문자의 개수가 포함되었으며 올바른 것입니다. 새로운 MVC 프로젝트에서 같은 것을 시도해 볼 수 있습니까? 바꾸기가 정확하면 \\을 찾아 \로 바꿉니다. –

+0

Doh! 건배 데이브, 그 앞에 @가 없다는 것을 놓쳤습니다. –

0

양식 제출과 컨트롤러 작업간에 슬래시가 두 배로 증가하지 않습니다.

디버거에서 이스케이프 된 문자 (\ n)와 리터럴 슬래시 (\)를 구별 할 수 있도록 두 개의 슬래시가 표시된 다른 컨텍스트에서 결과를 볼 가능성이 훨씬 큽니다.

문자열을 디버그 창에 기록하여이를 확인하십시오.

System.Diagnostics.Debug.WriteLine("SomeText");