String.Replace for Path和Url

时间:2015-09-16 14:09:21

标签: string url replace path filepath

我遇到路径字符串数据的问题。我在数据库中有一个字符串columb并在此columb中保留路径。就像这个;

D:\SCANNEDDOCUMENTS\2\3C9DED0628F44190ABF92D3C14F14A14-2-D.pdf

在我的项目中,我将访问IIS上的文档。我为IIS配置了所有设置。我需要一个像这样的网址;

HTTP://LOCALHOST/SCANNEDDOCUMENTS/2/3C9DED0628F44190ABF92D3C14F14A14-2-D.pdf

我不想改变数据库中的路径。他们是原始的本地路径。我只需要在viewmodel上进行更改。因此需要将第一个路径替换为第二个Url。当我从数据库中获得路径值时,我看到了:

D:\\SCANNEDDOCUMENTS\\2\\3C9DED0628F44190ABF92D3C14F14A14-2-D.pdf

有双反斜杠?为什么?如何取代这个像我想要的Url?

我尝试了几件事;

private static string ReplaceDocumentPathLocalToWeb(string path)
    {
        if (!string.IsNullOrEmpty(path))
        {
            SArchiveModule archivingModule = ContainerManager.Container.GetInstance<SArchiveModule>();
            SbtGeneralParameterModel parameter = archivingModule.GetGeneralParameters();
            string docDirectory = parameter.DocumentDirectoryPath;
            string docWebDirectory = parameter.DocumentWebRootPath + @"/" + parameter.DocumentWebFolderPath;
            path.Replace(docDirectory, docWebDirectory);
            path.Replace("\"", "/");
            if (path.StartsWith(@"/"))
            {
                path.TrimStart(new char[] { '/' });
            }
            if (path.EndsWith(@"/"))
            {
                path.TrimEnd(new char[] { '/' });
            }
        }
        return path;
    }

路径=&#34; d:\ SCANNEDDOCUMENTS \ 2 \ 3C9DED0628F44190ABF92D3C14F14A14-2-D.pdf&#34 ;;

来自数据库的参数;

docDirectory =&#34; d:\ SCANNEDDOCUMENTS&#34; docWebDirectory =&#34; HTTP:// LOCALHOST / SCANNEDDOCUMENTS&#34;

但是这段代码也不行:

   path.Replace(docDirectory, docWebDirectory);

我该怎么办才能更换?为什么我的数据带有双反斜杠?在数据库中,它有一个反斜杠?

1 个答案:

答案 0 :(得分:0)

对不起我错了。现在我遇到了问题。我无法看到string.replace结果&#39;因为我需要使用以下代码:

path=path.Replace(docDirectory, docWebDirectory);
        path=path.Replace("\"", "/");
        if (path.StartsWith(@"/"))
        {
            path=path.TrimStart(new char[] { '/' });
        }
        if (path.EndsWith(@"/"))
        {
            path=enter code here`path.TrimEnd(new char[] { '/' });
        }

这真是个愚蠢的错误......