类型'Byte的1维数组'的值不能转换为'String'

时间:2013-12-14 20:44:06

标签: vb.net

我正在尝试从我的硬盘驱动器中打开一个文件,但是然后将该文件复制到我的资源中,因为该文件无法在其他人的计算机上运行,​​这是我正在使用的编码,它给了我以上错误:

Process.Start("C:\Users\jmahone\AppData\Roaming\Local Libraries\Local Documents\Class List.xlsx")
FileCopy("C:\Users\jmahone\AppData\Roaming\Local Libraries\Local Documents\Class List.xlsx", My.Resources.Class_List)

我收到了这个错误:

Value of type '1-dimensional array of Byte' cannot be converted to 'String'

如果有人能给我一个替代解决方案。

谢谢

J Mahone: - )

1 个答案:

答案 0 :(得分:0)

FileCopy是VB6兼容性的剩余函数。它用于将源文件复制到目标文件。

它需要两个参数 第一个是包含源文件名称的字符串,第二个是具有目标目标文件名称的另一个字符串(带或不带路径名说明符)

在您的情况下,第二个参数不是字符串,而是对存储在应用程序资源中的字节块的引用。因此,你得到错误。您需要指定包含目标文件名的字符串。 (Es。“C:\ Users \ jmahone \ documents \ MyResources \ Class List.xlsx”)

如果您只是想打开XLSX文件,那么您需要在用户计算机上安装一个众所周知的目录,例如Environment.SpecialFolder枚举中列出的目录,然后从其中一个文件夹中打开该文件也存在于目标机器上。

例如:

 Dim dataFolder = Environment.GetFolderPath(Environment.SpecialFolder.CommonAppData)
 Dim myAppDataFolder = Path.Combine(dataFolder, "MyAppData")
 Directory.CreateDirectory(myAppDataFolder)
 Dim myExcelFile = Path.Combine(myAppDataFolder, "Class List.XLSX")

 Process.Start(myExcelFile)

请参阅以下文档:

Directory.CreateDirectory
Path class
Environment.SpecialFolder

相关问题