【问题标题】:c# - Handle empty spaces in file name while providing the file path as a linkc# - 处理文件名中的空格,同时提供文件路径作为链接
【发布时间】:2020-10-29 20:15:58
【问题描述】:

我正在开发一个内部应用程序,它会向用户发送包含培训文件链接的电子邮件。

这些文档被放置在内部共享驱动器中,这些文档中很少有名称中有空格,这就是导致问题的原因。

路径看起来像 \\Users\shared\Training\Database\Oracle\Docs\Oracle Database Admin.docx,我尝试用 %20 替换空白空间,但仍然无法正常工作。在电子邮件链接中,路径被修剪为 \\Users\shared\Training\Database\Oracle\Docs\Oracle

Public string GetMediaPath(int itemCode)
{
 string path = _dbContext.TraningMedias.Where( s => s.ItemCode == itemCode).Select(a => a.Path).FirstOrDefault().ToString();
 path.replace(" ", "%20");
 return path;
}

我不明白为什么替换功能在这种情况下不起作用。

【问题讨论】:

  • 您可能需要直接在电子邮件正文 HTML 中设置链接。发生的事情是您的电子邮件客户端正在更改超链接。电子邮件是如何发送的?
  • 通过 SMTP 发送邮件,此链接在电子邮件正文中发送。

标签: c#


【解决方案1】:

尝试这样做:

以下代码将从路径中删除所有无效的文件名字符。

 path =string.Concat(path.Split(Path.GetInvalidFileNameChars()));

不要忘记包含 System.IO 命名空间。

谢谢

【讨论】:

  • 这将删除路径中的所有 // 并将整个路径作为单个字符串,这使其路径无效
【解决方案2】:

字符串是不可变的,而Replace返回一个字符串,所以试试这个:

path = path.Replace(" ", "%20");

【讨论】:

    【解决方案3】:

    您可以尝试 url 编码并去掉空格和其他特殊字符。

    path= HttpUtility.UrlDecode(path);
    

    【讨论】:

      【解决方案4】:

      只需将原始文件路径字符串转换为适当的 URI,如下所示:

      string fileUrl = new System.Uri("c:\\foo\\my document.docx").AbsoluteUri
      

      这会给你这个字符串: "file:///c:/foo/my%20document.docx"

      【讨论】:

        【解决方案5】:

        this

        在你的情况下:

        path = Uri.EscapeUriString(path);
        

        【讨论】:

          【解决方案6】:

          要保留链接文本中的空格,请使用开始和结束人字形

          Public string GetMediaPath(int itemCode)
          {
           string path = "<"+ _dbContext.TraningMedias.Where( s => s.ItemCode == itemCode).Select(a => a.Path).FirstOrDefault().ToString() + ">";
          
           return path;
          }
          

          【讨论】:

            猜你喜欢
            • 2016-05-03
            • 1970-01-01
            • 1970-01-01
            • 2020-02-27
            • 1970-01-01
            • 1970-01-01
            • 2011-03-17
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多