我目前正在使用.Net中的Paths,并且在复制从网络服务传递为字符串的本地文件夹结构到我在IIS Express上的localhost下运行的网站时遇到了一些困难。
基本上,我们的用户将在我们的桌面软件中选择一个图像,其本地路径将作为我们的Web服务中图像的属性发送。因此,当我的脚本访问Web服务时,它会被输入一个字符串,如:
C:\\Users\\axumadmin\\Pictures\\axumImages\\Countries\\Canada\\canadianFlag.jpg
我们的用户将做的是将此文件夹结构FTP到我们服务器上的指定目录:
ServerRoot\\umbraco\\axumImages\\Countries\\Canada\\canadianFlag.jpg
我在这里遇到的主要问题是我似乎无法修改从Web服务中检索到的路径,只能从axumImages向下返回目录。所以从本质上讲,我的本地路径将转换为:
axumImages\\Countries\\Canada\\canadianFlag.jpg
我已经尝试过使用System.IO.Path将此路径转换为我希望返回的格式,但最终我到目前为止所有实现的目标都是仅仅恢复图像文件名:
canadianFlag.jpg
System.IO.Path.GetFileName(image.FileName);
或图像的父目录
C:\\Users\\axumadmin\\Pictures\\axumImages\\Countries\\Canada
因此我的问题是,如何解析字符串以便它只使用axumImages及其后代?
非常感谢任何帮助。
答案 0 :(得分:1)
使用string.Substring
var startIndex = image.FileName.IndexOf("axumImages");
string test = image.FileName.Substring(startIndex, image.FileName.Length-startIndex)
答案 1 :(得分:0)
我最后使用字符串解析来解决这个问题。
string test = image.FileName.Split(new[] { "axumImages" }, StringSplitOptions.None)[1];
在此示例中,image.Filename是我的文件名。因此,如果文件名是:
C:\\Users\\axumadmin\\Pictures\\axumImages\\Countries\\Canada\\canadianFlag.jpg
这将返回
\\Countries\\Canada\\canadianFlag.jpg
然后我可以将它连接成一个可用的变量,然后在该变量之下,这相当于我需要的路径:
var actualPath = "axumImages" + "test";