我正在尝试使用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";
一切都好。所以我无法弄清楚我应该如何将我的路径转换为正确的。有人可以解释一下吗?
答案 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("\", "/");