将本地文件夹结构转换为服务器上的文件夹结构
本文关键字:文件夹 结构 服务器 转换 | 更新日期: 2023-09-27 18:04:42
我目前正在使用。net中的路径,并且在复制本地文件夹结构时遇到了一些困难,这些结构作为字符串从web服务传递到我在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和它的后代?
use string.Substring
var startIndex = image.FileName.IndexOf("axumImages");
string test = image.FileName.Substring(startIndex, image.FileName.Length-startIndex)
我最终使用字符串解析解决了这个问题。
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";