使用C#在OpenOffice中对文件进行Incorect URL

时间:2015-08-04 10:38:51

标签: c# url openoffice.org openoffice-calc openoffice-writer

我正在尝试使用C#下的OpenOffice Calc文档并收到错误“Url似乎是一个不受支持的网络”。我的代码是:

string filePath="serverName\\folder\\file.ods";
filePath = "file:///" + filePath.Replace(@"\", "/");

PropertyValue[] props = new PropertyValue[0];
XComponent oDoc = loader.loadComponentFromURL(AFile, "_blank", 0, props);

错误仅针对网络中的文件引发。当我使用时:

string filePath="C:\\folder\\file.ods";

一切都好。所以我无法弄清楚我应该如何将我的路径转换为正确的。有人可以解释一下吗?

3 个答案:

答案 0 :(得分:1)

我发现了什么是错的。问题是文件在文件夹名称中看起来像" UserName#Files"。实际上问题是符号#'。当我用'%23'(编码为url表示法)替换它时,一切正常。

<强> UPD:

使用System.Uri转换路径的更好方法:

string filePath="\\servername\folder\UserName#Files\file.ext";
Uri fileUri=new Uri(filePath);
filePath=fileUri.Absolute.Uri;

答案 1 :(得分:0)

尝试使用:

string filePath="serverName\\folder\\file.ods";
filePath = "//" + filePath.Replace(@"\", "/");

答案 2 :(得分:0)

我找不到您在替换函数中使用@的原因,因为Replace函数会将所有\替换为/

string filePath="serverName\\folder\\file.ods";
filePath = "file://" + filePath.Replace("\", "/");