2015-01-26 6 views
2

내 프로그램을 다른 컴퓨터에서 동시에 실행해야합니다. 앱이로드 될 때 파일을 열 수 있습니다. 그런 다음 내 앱의 현재 인스턴스를 제외한 다른 액세스를 거부합니까? (먼저 파일에 액세스하기 위해 먼저 방문합니다).VB 파일을 열고 액세스를 허용하지 않습니다.

또는 특정 방법으로 파일을 플래그하는 방법과 플래그가 있거나 없는지 확인하고 파일과의 상호 작용을 트리거하는 버튼을 비활성화하여 가상로드를 확인하는 방법도 있습니다.

이것은 한 명 이상의 사람이 같은 파일을 사용하는 것을 방지하기위한 것입니다.

기본적으로 허용하는 방법은 문제가되지 않습니다. 시작 지점이 필요하고 계속 진행하면서 조정할 수 있습니다.

+0

이 파일을 액세스하는 다른 컴퓨터에서 잠글 필요가 있습니까? 네트워크 리소스입니까? 당신은 단지 하나의 기계에서 그것을 독점 할 필요가 있습니까? 또한 아래 내 의견에서 내 질문을 참조하십시오. 더 나은 솔루션을 제공하는 데 도움이되는 추가 정보로 질문을 업데이트하십시오. – pstrjds

답변

2

File.Open으로 파일을 열고 공유 유형으로 FileShare.None을 전달할 수 있습니다. 이렇게하면 다른 사람들이 파일을 열지 못하게됩니다.

File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None) 

편집 :
그냥 응용 프로그램에서 나중에이 파일을 XElement.Load를 호출하는 다른 질문의 일부에서 추측. 로드에 대한 오버로드 중 하나는 Stream입니다. File.Open 메서드는 FileStream을 반환합니다. 열려있는 응용 프로그램에서 바로 파일을 열면 XML 파일을 읽을 준비가되었을 때 FileStreamXElement.Load에 전달하면됩니다.

+0

한 번에이 작업을 시도했지만 XML 파일에'.Load'를 사용해야합니다. 그리고 File.Open을 사용했기 때문에로드에 실패합니다. 다른 사람들이 액세스 할 수 없도록 파일을 열린 상태로 플래그 할 수있는 방법이 필요하며 Form Closed 이벤트까지 프로그램 내에서 작업 할 수 있어야합니다. 이것이 가능하다면. 아니면 뭔가? – Bill

+0

당신의 코멘트에서 .Load를 동일한 파일에 사용한다고 가정합니다. 다른 XML 파일이 맞지 않습니까? 따라서 나중에 프로세스에서 동일한 파일을로드해야합니까? 이 과정에서 당신에게 편지를 쓰고 있습니까? 나중에 응용 프로그램에서이 파일을 사용하는 방법에 대한 세부 정보를 사용하여 질문을 명확히 할 수 있습니까? 로드 콜의 예를 보여줄 수 있습니까? – pstrjds