2014-09-19 2 views
0

파일에서 텍스트의 일부분을 제거하는 데 도움이 필요합니다. 예 :C#에서 텍스트 줄의 일부를 제거하는 방법

의 내가이 디렉토리에서 출력과 같이 목록이 있다고 가정 해 봅시다 :

Directory of C:\Data\Junk 

03/12/2014 08:35 AM <DIR>   . 
03/12/2014 08:35 AM <DIR>   .. 
03/05/2014 05:36 PM    397 junk.xml 
03/05/2014 05:36 PM    397 more_junk.xml 

내 목표는 다음에 그것을 설정하는 것입니다 :

Directory of C:\Data\Junk 

. 
.. 
junk.xml 
more_junk.xml 

내가 사용하여이 작업을 수행하는 방법을 알고 편집기에서 예상되는 문자열을 제거 할 수 있지만이 작업을 동적으로 수행하는 방법을 파악할 수는 없습니다. 또는 - 라인의 첫 번째 부분이 날짜 인 경우 X 문자를 제거하는 방법 (이 경우 X는 파일 이름의 시작 부분으로 이동합니다)을 감지하는 방법이 있습니까?

도움을 주셔서 감사드립니다. 당신은 당신이 (위의 40 개 문자로 표시되는) 폐기하는 방법 문자열의 정도의 길이를 알고있는 경우

+5

그럼 그냥 포맷 벌거 벗은 체재를 위해. 'dir/b> mytextfile.txt'와 같은 txt 파일을 얻을 수 있으며 타임 스탬프없이 파일/디렉토리 이름 만 얻을 수 있습니다. – Habib

+0

예, 코드는 매우 간단합니다. 기본적으로 이미 설명 했으므로 영어가 아닌 C#으로 변환하면됩니다. 그러나 왜 당신은하고 싶습니까? .NET 프레임 워크 메서드가 내장 된 디렉토리에서 파일 목록을 가져 오지 않는 이유는 무엇입니까? – mason

+2

'System.IO' 네임 스페이스는 사용하기가 훨씬 쉽습니다. – paqogomez

답변

2

, 당신은

yourString.Substring(40)

이 라인의 나머지를 얻을 할 수 있습니다.

그러나 조언의 조언은 건전합니다. 처음에는이 특별한 경우의 문자열을 처리 할 필요가 없을 것입니다.

+0

'string part = yourString.Substring (...)'표시를 고려하십시오 - 배경에 따라'Substring'이 원래 문자열을 수정한다고 생각할 수 있습니다 ... –

3

왜 Directory.GetFiles를 사용하여 모든 파일을 나열하지 않는가?

string[] files = Directory.GetFiles(@"C:\Data\Junk", "*.*", SearchOption.TopDirectoryOnly); 

당신은 예를 들어, 원하는대로 단지 디렉토리가/b` 곳`b`가`사용

명령 프롬프트 (DOS)는 파일 이름과 디렉토리 이름을 얻을 수 있습니다에서
Console.WriteLine("."); 
Console.WriteLine(".."); 
foreach(string f in files) 
{ 
    Console.WriteLine(file); 
} 
관련 문제