我创建调用文件的网站和桌面程序(图像 - 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
有没有办法可以直接调用它而无需更改文件名
答案 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,因为这样可以避免文件中出现任何编码问题。