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