• 締切済み

実行ファイル内に保持

Visual Studio Express 2013 Shell("cmd /c copy D:\aaa.txt " & textbox1.text & ".txt",AppWinStyle.Hide,True) 例ですが、 テキストボックスに任意の文字列を入力して、 aaa.txtをコピーするとします。 aaa.txtを固定の場所に置くのではなく、実行ファイル内に保持していて、 どのPCでも実行できるように出来ないでしょうか?

みんなの回答

回答No.1

aaa.txtがそもそも存在する必要がないのであれば,リソースとして保持すればよいです。 プロジェクトのプロパティを開いてファイルとして追加すればよいでしょう。 例示されたものであれば,File.WriteAllBytesと組み合わせてできます。 ref) http://msdn.microsoft.com/ja-jp/library/system.io.file.writeallbytes.aspx ref) http://msdn.microsoft.com/ja-jp/library/9za7fxc7(v=vs.110).aspx 実際に行っているのが,ファイルのコピーのようなそもそもShellを呼び出す必要な処理でないものではなく, 別のアプリケーションを起動する引数であるような,対象が実際にファイルである必要があるのであれば, ファイルを出力ディレクトリにコピーする設定にしておき, Assembly.GetEntryAssembly().Locationを元にパスを組み立てるのが簡単です。 ref) http://msdn.microsoft.com/ja-jp/library/system.reflection.assembly.getentryassembly.aspx ref) http://msdn.microsoft.com/ja-jp/library/system.reflection.assembly.location.aspx ref) http://msdn.microsoft.com/ja-jp/library/system.io.path.getdirectoryname.aspx ref) http://msdn.microsoft.com/ja-jp/library/fyy7a5kt.aspx または,リソースに保持してPath.GetTempFileNameに出力してしまってもよいでしょう。 ref) http://msdn.microsoft.com/ja-jp/library/system.io.path.gettempfilename.aspx

darky2
質問者

お礼

ありがとうございます 最後に記述されている方法を試してみます

darky2
質問者

補足

リソースのテキストファイルの出力はどうするのでしょうか?

関連するQ&A