- 締切済み
実行ファイル内に保持
Visual Studio Express 2013 Shell("cmd /c copy D:\aaa.txt " & textbox1.text & ".txt",AppWinStyle.Hide,True) 例ですが、 テキストボックスに任意の文字列を入力して、 aaa.txtをコピーするとします。 aaa.txtを固定の場所に置くのではなく、実行ファイル内に保持していて、 どのPCでも実行できるように出来ないでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Yune-Kichi
- ベストアンサー率74% (465/626)
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
お礼
ありがとうございます 最後に記述されている方法を試してみます
補足
リソースのテキストファイルの出力はどうするのでしょうか?