2013-05-24 5 views
1

문자열에 파일 내용이 있고 동일한 내용을 3 개의 다른 파일에 넣어야합니다. 그래서 나는 File.WriteAllText()의 C# 함수를 사용하여 내용을 첫 번째 파일에 저장합니다. 더 나은 어떤 옵션입니다 File.WriteAllText(otherFile, content) 성능 현명한 : File.Copy 대 C#에서 File.WriteAllText 함수?

성능 현명한 사용 File.Copy(firstFile, otherFile)

  • 를 사용

    1. : 지금, 다른 두 파일을, 나는 두 가지 옵션이 있습니다?

  • +0

    Copy는 쓰기 및 쓰기 목적으로 하드 드라이브에 액세스하는 반면 WriteAllText는 쓰기 목적으로 만 하드 디스크에 액세스합니다. 하지만 다른 요소가 있다면 알아야합니다. –

    +0

    체크 아웃 [possible duplicate] (http://stackoverflow.com/questions/1246899/file-copy-vs-manual-filestream-write-for-copying-file) – alexb

    +0

    약간의 노력을 보여주세요. 'StopWatch'를 코드에서 실행하고 직접 작업 하시겠습니까? –

    답변

    2

    파일 크기가 비교적 작 으면 Windows 디스크 캐시에 캐시 된 상태로 유지되기 때문에 성능 차이가 작거나 심지어는 File.Copy()이 더 빠를 수도 있습니다 (Windows는 데이터가 동일하다는 것을 알기 때문에, File.Copy()은 매우 최적화 된 Windows API를 호출합니다.

    Windows 파일 캐싱으로 인해 타이밍이 완전히 비뚤어 질 수 있지만 실제로 신경 쓰면 시간을 측정하고 시간을 기록해야합니다.

    중요한 점 : File.Copy()을 사용하면 생성 시간을 포함한 파일 속성이 복사됩니다. 프로그래밍 방식으로 모든 파일을 만들면 파일 간의 생성 시간이 다를 수 있습니다.

    이것이 중요한 경우, 모든 파일에 대해 동일하게되도록 파일 특성을 프로그래밍 방식으로 설정해야 할 수 있습니다.

    개인적으로는 File.Copy()을 사용합니다.