调用外来名称为vb.net,c#和asp的文件

时间:2014-09-02 07:23:53

标签: html asp.net vb.net file

我创建调用文件的网站和桌面程序(图像 - pdf - 视频) 但文件的外来名称如“Dr._Laura_VécciaV'agliéri.jpg” 或者有特殊的性格,所以大部分时间我都不工作

当我像在

这样的网站中调用它时
<img src="Dr._Laura_Véccia V'agliéri.jpg" />

或喜欢

Try 

  Using sr As StreamReader = New StreamReader("Dr._Laura_Véccia V'agliéri.jpg")
  Dim line = Await sr.ReadToEndAsync()
  ResultBlock.Text = line
End Using 
Catch
   ResultBlock.Text = "Could not read the file" 
End Try 

有没有办法可以直接调用它而无需更改文件名

1 个答案:

答案 0 :(得分:0)

Framework 4.5中的StreamReader并使用NTFS可以正确处理符合UNICODE的文件字符串,例如您显示的文件名,因此您可以使用é和'等特殊字符。

这是经过测试的代码,可以成功读取您指定文件名的文本文件。

Async Sub ReadCharacters()
    Dim result As String

    Using reader As StreamReader = New StreamReader("c:\\users\\path\\Dr._Laura_Véccia V'agliéri.jpg.txt")
        Console.WriteLine("Opened file.")
        result = Await reader.ReadToEndAsync()
        Console.WriteLine("Contains: " + result)
    End Using
End Sub

我认为发生的事情是,在尝试自动检测jpeg上的编码失败后,流阅读器会向您抛出错误。 SteamReader实际上用于文本流。

对于.jpgs,最好使用BinaryReader,因为这样可以避免文件中出现任何编码问题。