2014-11-10 3 views
1

WebDAV 서버에 파일이 있습니다. C에서 네온 WebDAV 클라이언트 라이브러리를 사용하여이 파일을 편집하고 싶습니다. 원하는 것은 MIME 유형의 기본 응용 프로그램에서이 파일을 열고 편집을 마친 후에 webdav 서버의 모든 변경 사항을 저장해야합니다. 내 OS는 Windows 7입니다.네온 WebDAV를 사용하여 파일 편집

몇 가지 질문이 있습니다.

  • 이 파일을 임시 디렉토리에 먼저 다운로드해야합니까?
  • 네온 명령이 있습니까?
  • 파일이 변경되었는지 어떻게 알 수 있습니까?
  • "저장"버튼을 클릭했는지 확인할 방법이 있습니까?
  • 파일을 약간 변경하면이 변경 사항을 webdav 서버에 적용하기 위해 사용해야하는 명령은 무엇입니까?

간단한 예가 있으면 나와 공유하십시오.

Update는이 "대답"문제에 대한 다시 한번 감사하고 죄송합니다. 나는 다음 코드를 사용하려고했습니다 :

do { 
     fd = open("c:\\temp\\testdoc.docx", O_CREAT | O_RDWR, _S_IREAD | _S_IWRITE); 
    } while (fd == -1 && errno == EINTR); 
    if (fd == -1) { 
     const char *const errmsg = strerror(errno); 
     fprintf(stderr, "%s: %s.\n", "c:\\temp\\testdoc.docx", errmsg); 
     exit(1); 
    } 
     res =ne_get(sess, "/webdav/test/testdoc.docx", fd); 
_close(fd); 

을하지만 난 여전히지고있어 내가 노력하고있을 때 "죄송합니다 우리는 열 수 없습니다 testdoc.docx을 할 수는 내용에게의와 우리가 문제를 발견하기 때문이다." MS Word에서 열 수 있습니다. Wern이 파일을 네온을 사용하지 않고 내 서버에서 직접 다운로드하고 있습니다.이 파일은 ne_get 명령을 사용하여 다운로드 한 파일과 크기가 동일하고 MS Office가 완벽하게 열립니다.

do { 
     fd = open("c:\\temp\\testdoc.docx", O_CREAT | O_RDWR, _S_IREAD | _S_IWRITE); 
    } while (fd == -1 && errno == EINTR); 
    if (fd == -1) { 
     const char *const errmsg = strerror(errno); 
     fprintf(stderr, "%s: %s.\n", "c:\\temp\\testdoc.docx", errmsg); 
     exit(1); 
    } 
     res =ne_put(sess, "/webdav/test/testdoc.docx", fd); 
_close(fd); 

그러나 입술 1 오류입니다은 다음과 같습니다 : "요청에 조기 EOF 또한

, 나는 다음과 같은 코드를 사용하여, MS Word를 사용 testdoc.docx를 만들고, 내 서버에 넣어 시도했습니다 본문 파일 ".

답변

1

이 파일을 임시 디렉토리에 먼저 다운로드해야합니까?

예. 파일을 실제 로컬 파일에 저장해야합니다. 그렇지 않으면 로컬 응용 프로그램에서 열 수 없습니다.

네온 명령이 있습니까?

다운로드하려면 ne_get (네온 API 제공)을 사용하십시오.

GetTempPath WinAPI 함수를 사용하여 현재 사용자의 임시 디렉터리가있는 곳을 찾습니다.

파일이 변경되었는지 어떻게 알 수 있습니까?

012apWinAPI 기능을 참조하십시오.

또는 변경 사항을 기다리는 루프의 임시 수정 마지막 시간 소인을 확인하십시오.

"저장"버튼을 클릭했는지 확인할 방법이 있습니까?

아니요. 파일을 바꿀 수 있는지 확인하십시오.

파일을 약간 변경하면이 변경 사항을 WebDAV 서버에 커밋해야합니까?

ne_put을 사용하십시오.


Btw는 궁극적 인 목표입니까 아니면 더 큰 응용 프로그램의 일부입니까?

이것이 궁극적 인 목표 인 경우, 바로 사용할 수있는 도구가 있습니다. 예를 들어 WinSCP (다른 WebDAV 클라이언트)을 연관된 응용 프로그램에서 open a remote file on double-click으로 구성하고 저장시 다시 파일을 업로드하게 할 수 있습니다. 즉 WinSCP는 위에서 설명한 정확한 솔루션을 구현합니다. (저는 WinSCP의 저자입니다)