【发布时间】:2015-10-14 04:55:36
【问题描述】:
我遇到了一个奇怪的问题。
VB.NET - 不工作
Dim stringData As String = Encoding.UTF8.GetString(buffer, 0, buffer.Length)
If Not [String].IsNullOrEmpty(stringData) AndAlso System.IO.File.Exists(stringData) Then
Process.Start(stringData)
End If
工作
If Not [String].IsNullOrEmpty(stringData) AndAlso System.IO.File.Exists(stringData) Then
Process.Start(stringData)
End If
Process.Start(stringData)
C# - 工作:
string stringData = Encoding.UTF8.GetString(buffer, 0, buffer.Length);
if (!String.IsNullOrEmpty(stringData) && System.IO.File.Exists(stringData))
{
Process.Start(stringData);
}
谁能解释我做错了什么?
【问题讨论】:
-
我不确定,但这似乎是人为的问题。你确定文件路径是完全相同相同的吗?
-
插入一个断点并检查每个代码库的
stringData变量是什么。 -
它是如何“不工作”的?如果它没有启动程序,请检查异常。也许您使用的相对路径对于 C# 编译的 EXE 是正确的,但是 VB.NET 编译的 EXE(也就是说,在不同的位置)该路径不再有效。
-
而“工作 - 不工作”代表...
-
@Alexander 我怀疑在 VB 版本中,您的缓冲区比您预期的要大一个字节。在 C# 中,您在声明数组时给出数组中元素的数量,而在 VB 中,您给出最后一个元素的索引。
标签: c# vb.net file file-exists