2012-04-12 1 views
2

아마도 쉽게 대답 할 수 있지만 을 내 fileName에 추가하면 모든 \에 대해 \를 추가하므로 C:\TempC:\\Temp이되어 파일이 저장되지 않습니다. 파일 이름에는 두 개의 백 슬래시가 있습니다. C#

출력이 C:\\Temp\\data_12/04/2012 20:08:40.txt

그것은 아니 C:\Temp\data_12/04/2012 20:08:40.txt

+3

비쥬얼 라이저가 백 슬래시를 이스케이프 처리해야하므로 표시 방법과 다릅니다. – BrokenGlass

답변

9

해야 할 수 있습니다 예를 들어 질문

String fileName = @"C:\Temp\data_" + DateTime.Now.ToString() + ".txt"; 

의 코드, 정말는 단일 백 슬래시를 가지 문자열입니다. 그것을 인쇄하기 콘솔로 나가면 볼 수 있습니다.

디버거에서 보면 백 슬래시가 이스케이프 처리 된 것을 볼 수 있지만 문자열 자체에는 백 슬래시가 하나 있습니다. 이것은 실제로 파일 이름에 불법 슬래시입니다 명 :(

+1

당신은 어디에 있든 출력을 저장하지 않습니다. C : \ Temp \ data_04 12 20:43 2012.txt –

+1

코드를 보지 않고 "출력을 저장하지 않음"이라는 의미를 알 수 없습니다. –

+0

윈도우의 어떤 버전이 마침내 비하 할 것이고 이스케이프와 경로 구분 기호를 의미하는 백 슬래시를 쓸모 없게 할 것입니다! – payo

9

많이 물린 전방 법적 뭔가 슬래시 교체하고 다시 시도

+2

결장도 문제가 될 수 있습니다 ... – Servy

+0

@Servy, 당신 말이 맞아요, 제 파서에 내장 된 첫 번째 오류가 빠져 나왔습니다. –

0
String fileName = String.Format(@"C:\Temp\data_{0}.txt",DateTime.Now.ToString("ddMMyyyyHHmmss")); 

출력 :.. C:\Temp\data_12042012214358.txt

또는 사용을

String fileName = String.Format(@"C:\Temp\data_{0}.txt", DateTime.Now.ToString("dd.MM.yyyy HH-mm-ss")); 

출력 : C:\Temp\data_12.04.2012 21-45-03.txt

+0

이것은 컴파일되지 않습니다. 첫 번째 따옴표 앞에 이중 백 슬래시 또는 @가 있어야합니다. – Amaranth

+0

@ althouth 없이는 \ T와 \ d를 사용할 수 없습니다. \를 문자열로 추가하는 방법이 있다고 생각합니다. 어떻게 기억하지 못합니까? –

+1

"C : \ Temp \\ data_ {0} .txt" 그것을 허용합니다. \를 추가하면 다음 문자가 리터럴임을 나타냅니다. – Amaranth

0

형식을 설정 시도해보십시오 \ 이스케이프 때문에

String fileName = @"C:\Temp\data_" + DateTime.Now.ToString("MM d HH mm yyyy") + ".txt"; 
+0

콜론이 그것을 깨뜨릴 것입니다 – Servy

+0

@Servy 예, 빨리 되려고합니다 .. :) –

0

사실, 변수 값에 두 개의 백 슬래시를 보여줍니다. 변수 값을 출력하면 백 슬래시가 하나만 있음을 알 수 있습니다.

관련 문제