-1

このコードは機能します:

Public Sub Install()
    progDirectory = )
    My.Computer.FileSystem.WriteAllBytes(SelFolder & "\Resource.zip", My.Resources.Resource, False)
    Unzip(SelFolder & "\Resource.zip", SelFolder)
End Sub

しかし、これはしません:

Dim progDirectory As 

Public Sub Install()
    progDirectory = Environment.GetFolderPath(System.Environment.CurrentDirectory)
    My.Computer.FileSystem.WriteAllBytes(SelFolder & "\Resource.zip", progDirectory, False)
    Unzip(SelFolder & "\Resource.zip", SelFolder)
End Sub

私が達成しようとしていることの基本的な要点は、exeの現在のディレクトリ/パスを見つけて、そのディレクトリから「Resource.zip」ファイルを見つけることです。

コードの最初のセクションでは、.zip ファイルを選択した場所 (SelFolder) に書き込み、それを解凍してから、そのフォルダーから Resource.zip を削除します。

コードの 2 番目のセクションは、同じことを行うことを目的としていますが、アプリケーション リソースではなくディレクトリからの zip を使用します。

私が得るエラーは次のとおりです。「文字列」型の値を「バイトの 1 次元配列」に変換できません。この行で:

My.Computer.FileSystem.WriteAllBytes(SelFolder & "\Resource.zip", progDirectory, False)

4

2 に答える 2

0

使用する:File.Copy(SelFolder & "\Resource.zip", progDirectory)

それ以外の:My.Computer.FileSystem.WriteAllBytes(SelFolder & "\Resource.zip", progDirectory, False)

于 2013-07-14T23:39:37.987 に答える
0

実行可能ファイルの現在のパスは、プロパティAppDomain.CurrentDomain.BaseDirectoryから取得できます。

情報を取得する方法は他にもありますが、何年も前に、Windows Mobile を含む複数のプラットフォームで実行されるコードを記述したときに、これが情報を取得する最も安全な方法であることがわかりました。

したがって、progDirectory の割り当てを次のように変更できます。

    progDirectory = AppDomain.CurrentDomain.BaseDirectory
于 2013-07-15T01:48:16.283 に答える