将本地文件夹结构转换为服务器上的文件夹结构

本文关键字:文件夹 结构 服务器 转换 | 更新日期: 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";