首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用neon WebDAV编辑文件

使用neon WebDAV编辑文件
EN

Stack Overflow用户
提问于 2014-11-10 14:06:04
回答 1查看 533关注 0票数 1

我有一个文件,它在WebDAV服务器上。我想使用C上的neon WebDAV客户端库编辑这个文件,我想要的是-在默认应用程序中打开这个文件的MIME类型,在我完成编辑之后,它应该保存在webdav服务器上的所有更改。我的操作系统是Windows 7。

我有些问题要问。

  • 我应该先下载这个文件到临时目录吗?
  • 有什么霓虹灯的命令来做吗?
  • 我怎么知道文件是否被更改了?
  • 是否有任何方法检查“保存”按钮是否已被单击?
  • 当我在文件中做一些更改时,我应该使用什么命令将这些更改提交到webdav服务器?

如果有人有简单的例子,请和我分享。

更新

再次感谢您,并为这个“回答”问题表示歉意。我尝试使用以下代码:

代码语言:javascript
复制
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);

但是当我试图用MS Word打开它时,我仍然收到“我们很抱歉。我们不能打开testdoc.docx,因为我们发现它的内容有问题”。我直接从我的服务器下载这个文件,没有使用neon,这个文件的大小与使用ne_get命令下载的文件相同,并且MS完美地打开了它。

此外,我还尝试使用MS创建testdoc.docx,并使用以下代码将其放入服务器:

代码语言:javascript
复制
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);

但是res是1,错误是:“请求体文件中的早熟EOF”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-10 15:09:26

我应该先下载这个文件到临时目录吗?

是。您需要将该文件存储在物理本地文件中。否则,您无法在本地应用程序中打开它。

有什么霓虹灯的命令来做吗?

要下载,请使用ne_get (来自neon )。

使用GetTempPath WinAPI函数查找当前用户的临时目录所在的位置。

我怎么知道文件是否被更改了?

请参阅FindFirstChangeNotification WinAPI函数。

或者,在循环中检查临时文件的最后修改时间戳,等待更改。

是否有任何方法检查“保存”按钮是否已被单击?

不是的。您所能做的就是检查文件是否已更改。

当我在文件中做一些更改时,我应该使用什么命令将这些更改提交到WebDAV服务器?

使用ne_put

顺便说一句,这是一个最终目标还是一个更大的应用程序的一部分?

如果这是一个最终的目标,有一些工具可以做到这一点。例如,您可以在关联的应用程序中将WinSCP (WebDAV client等)配置为双击打开远程文件。,并让它在保存时上传文件。换句话说,WinSCP实现了我前面描述的解决方案。(我是WinSCP的作者)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26845637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档