프로덕션 서버에서 실행되는 응용 프로그램을 개발하는 책임을 맡고 있으며 모든 ini, xml 및 config 파일 확장명에서 특정 문자열을 검색하고 바꿔주는 것을 목표로합니다. 성능 (총 150 대의 서버). 대체하기 전에 파일을 백업해야합니다. 이것을 달성하는 가장 좋은 방법은 무엇입니까? 제쳐두고 Dot Net 4.0을 사용할 수는 있지만 모든 서버에 4.0이 없기 때문에 3.5를 사용하는 것이 바람직하지만 4.0으로 업데이트 할 수있는 큰 이점이있는 경우 바람직합니다. 이제 나는 이런 생각을하고 있습니다 :전체 파일 시스템에서 파일 내용 검색 및 바꾸기에 대한 팁
String[] arrayFiles = Directory.GetFiles(strFylesystem , strExtensao, SearchOption.AllDirectories);
foreach (string s in arrayFiles){
File.Copy(pathOrigin + s, pathNew);
searchFound = false;
foreach (string line in File.ReadAllLines(pathNew + s){
if (line.contains("string_searched")){
line.Replace("string_searched", new_string);
searchFound = true;
}
if (!searchFound){
File.Delete(pathNew + s);
}
}
}
나는 Lambda, PLINQ e Regular Expression을 사용하는 포럼을 발견했습니다. 개인적인 취향을 넘어, 성능면에서 도움이 될만한 사람이 있습니까? 예를 들면 : File.ReadAllLines
StreamReader
을 사용하여 개발하는 대신 사용하면 성능이 좋아질 수 있습니까? windows에서 findStr
을 랩핑하고 성능을 향상시킬 수 있습니까?
정말 모든 INI 및 XML 파일이 모든 디스크에 있습니까? – alexn
이것은 Powershell 스크립트의 작업처럼 들립니다. 한 가지 예가 [여기] (http://poshcode.org/1707)에서 찾을 수 있습니다. 면책 조항 : 나는 연결된 스크립트를 시도하지 않았습니다. 자신의 책임하에 사용하십시오. – PHeiberg
이 스크립트를 많이 실행해야합니까? 그것은 거의 당신이 한 번 실행하고 행복하게해야 할 것 같은데 들리 네요. 그렇다면 성능이 왜 중요한가요? – Anthony