VB.Net中使用GetFileInfo处理含双引号文件名获取文件长度的方法
解决带双引号文件名的文件长度获取问题
Windows文件系统中双引号是保留特殊字符,直接用常规路径调用FileInfo或My.Computer.FileSystem.GetFileInfo会被判定为语法错误,你可以通过以下方法解决:
方法一:使用Windows扩展路径前缀
给绝对路径加上\\?\前缀,这个前缀会让Windows API跳过路径解析逻辑,直接按原始字符串处理文件路径,完美支持带双引号的文件名。
示例代码:
' 原始带双引号的路径 Dim filePath As String = "V:\CDs\Disco\Summer, Donna\2003 The Journey- The Very Best of Donna Summer\21. I Feel Love (12"" single mix).flac" ' 添加扩展路径前缀 Dim extendedFilePath As String = "\\?\" & filePath ' 直接获取文件长度(最简方式) Dim fileLength As Long = System.IO.File.GetLength(extendedFilePath) ' 或者用FileInfo获取更多文件信息 Dim fileInfo As New System.IO.FileInfo(extendedFilePath) Dim lengthFromInfo As Long = fileInfo.Length
注意事项
\\?\前缀仅支持绝对路径,如果你的路径是相对路径,需要先通过Path.GetFullPath()转换为绝对路径后再添加前缀。- Windows 7完全支持该扩展路径前缀,符合你的系统目标要求。
内容的提问来源于stack exchange,提问作者Jerry
相关产品推荐
相关产品推荐

