0

テンプレートファイルとCSVファイルを使用するアプリケーションがあります。私は自分のコンピューターに上記のファイルを持っていて、それらのパスを参照しているので、それは完全にうまく機能します。私がしたいのは、ソフトウェアが公開およびインストールされると(そして、前述のファイルがリソースフォルダーにあるため、埋め込みリソースになる)、csvファイルとテンプレートファイルがディレクトリフォルダーにコピーされることです。プログラムが使用します。できれば、コピー先のパスは次のようになります: "C:\ FILES"+template.dotx。

では、ソフトウェアのリソースフォルダから新しいフォルダに上記のファイルを取得/取得するにはどうすればよいですか?

4

1 に答える 1

2

あなたは呼び出すことができます

System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();

そして、どの組み込みリソースにアクセスできるかを調べます。次に、それを渡したものと比較して、期待したことを実際に達成しているかどうかを確認できます。

string FileExtractTo = "C:\FILES";
DirectoryInfo dirInfo = new DirectoryInfo(FileExtractTo);

if (!dirInfo.Exists())
    dirInfo.Create();

using (Stream input = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
using (Stream output = File.Create(FileExtractTo + "\template.dotx"))
{
    CopyStream(input, output);
}

CopyStreamメソッド:

public static void CopyStream(Stream input, Stream output)
{
    // Insert null checking here for production
    byte[] buffer = new byte[8192];

    int bytesRead;
    while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
    {
        output.Write(buffer, 0, bytesRead);
    }
}
于 2012-11-04T06:58:55.240 に答える