2012-02-17 3 views
1

숨김 및 읽기 전용 속성이있는 파일에 쓰려고합니다. 내 프로세스는이 프로세스에 쓸 수 있어야하지만 다른 프로세스는 읽기 전용 액세스 권한을가집니다. 나는 다음입니다숨김/읽기 전용 파일에 작성하는 권장 방법 C#

절차는 : 파일

  • 파일의 기존 특성을 제거 존재

    1. 확인하는 경우, 즉 숨겨진 읽기 전용
    2. 마침
    3. 적용 파일에 쓰는 파일에 대한 속성 (숨김 및 읽기 전용)

    나는이 방법을 사용하는 것이 권장되지 않음을 알고 있습니다. File Attributes를 선택하고 숨겨진 파일에 기록하십시오. 내 작업을 수행하는 더 좋은 방법이 있습니까?

    미리 감사드립니다.

  • +0

    이 프로세스는 경쟁 조건의 영향을받을 수 있습니다. –

    답변

    1

    예, 응용 프로그램을 특별 계정으로 가장하십시오. 해당 파일의 해당 계정에 대한 파일 쓰기 권한을 부여하고 다른 모든 계정에 대한 읽기 권한을 부여하십시오.

    다른 사용자의 컨텍스트에서 실행하는 가장 간단한 방법은 shift 키를 누른 상태에서 exe 파일을 마우스 오른쪽 단추로 클릭하고 "다른 사용자로 실행"을 선택하는 것입니다.

    Windows 서비스를 사용하면 서비스 속성에서 실행중인 계정을 변경할 수 있습니다. Windows 예약 작업에서도 마찬가지입니다.

    "프로세스 중간에"실행중인 계정을 변경하려면 더 많은 작업을 수행하고 제목에 대해 좋은 기사를 찾아야합니다 (예 : http://www.codeproject.com/Articles/4051/Windows-Impersonation-using-C).

    +0

    제안 해 주셔서 감사합니다. 나는 초보자 다. 나는 그 일을하는 방법에 대해 언급 할 수 있을까? 그리고이 앱은 현재 콘솔 앱으로 나중에 Windows 서비스로 변환해야합니다. 제안한 솔루션이 나중에 앱 구성에 영향을 미칩니 까? 감사. – user591410

    +0

    실제로 특수 사용자의 컨텍스트에서 전체 응용 프로그램을 실행할 수 있습니다. 매우 쉬운 Windows 서비스를 사용하여 대답을 업데이트했습니다. –

    +0

    감사합니다. Albin! 그게 효과가 있었어. – user591410

    0

    @Albin 메모와 마찬가지로 액세스 문제를 해결하는 올바른 방법은 파일 사용 권한이며 속성이 아닙니다.

    사용자가 내용을 볼 수 없기 때문에 파일이 숨겨져 있다면 간단한 (상대적으로 가벼운) 암호화 메커니즘이 숨겨진 특성보다 더 나은 솔루션이 될 것입니다.

    숨김 속성과 읽기 전용 속성은 충분한 권한을 가진 사용자가 해제 할 수 있습니다. 그리고 일반적으로 누구나 탐색기에서 "숨김 파일 및 폴더 표시"기능을 켤 수 있습니다.

    0

    숨김 속성을 제거 할 필요가 없습니다. 나는 읽기 전용으로 다른 해결책이 없다는 것을 알고있다.