У меня есть файл, он находится на сервере WebDAV. Я хочу отредактировать этот файл с помощью клиентской библиотеки neon WebDAV на C. Что мне нужно - откройте этот файл в приложении по умолчанию для его типа MIME, и после того, как я закончу редактирование, он должен сохранить все изменения на сервере webdav. Моя ОС - Windows 7.Редактировать файл, используя neon WebDAV
У меня есть некоторые вопросы.
- Следует ли сначала загрузить этот файл в папку temp?
- Есть ли какая-нибудь неоновая команда для этого?
- Как узнать, был ли файл изменен?
- Есть ли способ проверить, была ли нажата кнопка «Сохранить»?
- Когда я сделаю некоторые изменения в файле, какую команду я должен использовать для фиксации изменений на сервере 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 я загружаю этот файл непосредственно с моего сервера, не используя neon, этот файл имеет тот же размер, что и файл, который был загружен с помощью команды ne_get, и MS Office отлично открывает его.
Кроме того, я пытался создать testdoc.docx с помощью MS Word, и поместить его в мой сервер, используя следующий код:
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 и ошибок: «Преждевременный конец файла в запросе body file ".