ソリューションに Template という名前のフォルダーがあります。いくつかのファイルをコピーしてそこからアクセスしたい。そのパスを設定するにはどうすればよいですか?アプリケーションをデプロイすると、このフォルダは存在しますか?
これは機能しますか?
File.Move(@"DebriefReportTemplate.docx", @"~\Template\DebriefReportTemplate.docx");
ソリューションに Template という名前のフォルダーがあります。いくつかのファイルをコピーしてそこからアクセスしたい。そのパスを設定するにはどうすればよいですか?アプリケーションをデプロイすると、このフォルダは存在しますか?
これは機能しますか?
File.Move(@"DebriefReportTemplate.docx", @"~\Template\DebriefReportTemplate.docx");
セットアップ/デプロイ プロジェクトをビルドしてインストール時に作成するか、アプリにコードを追加して最初の呼び出し時に作成しない限り、作成されません。
あなたは使用することができます
string sourceFile = Path.GetDirectoryName(Application.ExecutablePath)+@"\Template\DebriefReportTemplate.docx";
string destinationFile = @"C:\DebriefReportTemplate.docx";
// To move a file or folder to a new location:
System.IO.File.Move(sourceFile, destinationFile);
参考文献:
Template フォルダーの存在が心配な場合は、コードのどこかで作成することができます。
string path = System.IO.Path.Combine("", "Template");
System.IO.Directory.CreateDirectory(path);
次に、ファイルを移動します
File.Move(@"DebriefReportTemplate.docx", @"Template\DebriefReportTemplate.docx");
編集: この回答は、ASP.NET アプリケーション用です。
テンプレート フォルダー (そのコンテンツを含む) が Web プロジェクトの一部である場合、展開は自動的に機能するはずです。実行時にこのフォルダーにファイルを追加する場合は、次を使用できます
Server.MapPath(@"~\Template\DebriefReportTemplate.docx")
、ただし注意してください。Web アプリケーションは通常、ローカル リソースへのアクセスが制限された ID で実行されます。
Win アプリの場合も同様です。必要なことは、フォルダーとファイルをコンテンツとしてプロジェクトに追加することです。ただし、セットアップ プロジェクトが必要です。