0

アプリケーションのリソースに追加したファイルがいくつかあります。これらのファイルでは、[出力ディレクトリにコピー]プロパティが[常にコピー]に設定されているため、ファイルはapplicationDirectiry/Resourcesディレクトリに表示されます。

私が欲しいのはそれらのファイルへのアクセスです。もちろん、次のコードを使用できます。

Environment.CurrentDirectory 
 + Path.DirectorySeparatorChar
 + "Resources\ResourceFileName.xslt";

ここでの問題は、ファイルまたは\ Resourcesディレクトリの名前を変更する場合、すべての文字列を変更する必要があることです。

編集:たとえば、リソースにMasterData.xsltファイルがあります。ビルド後、_ApplicationFolder\Resources_ディレクトリに配置されます。そのファイルへのパスは、ApplicationFolder \ Resources\MasterData.xsltです。私のコードでは、を使用してそのファイルのコンテンツにアクセスできます

Resources.MasterData

コンテンツの代わりにファイルパス(ApplicationFolder \ Resources \ MasterData.xslt )を取得する方法はありますか?

4

2 に答える 2

2

ビルド中にそこにファイルを配置する場合、その場所は「魔法の」定数と見なされる必要があります。

const string resFolder = "Resources";単一の定義ポイントを持つように、どこかを使用するだけです。

OT: そして、System.IO.Path.Combine()ファイルパスを構築するために使用します:

 string myPath = Path.Combine(Environment.CurrentDirectory, 
        resFolder, "ResourceFileName.xslt");
于 2012-10-16T13:30:04.490 に答える
0

Resources がアプリケーションのランタイム ディレクトリの下のサブディレクトリである場合は、次のようにすることができます。

string fileName = 
    System.Reflection.Assembly.GetExecutingAssembly().Location +    
    Path.DirectorySeparatorChar + 
    "Resources" + 
    Path.DirectorySeparatorChar +
    "ResourceFileName.xslt";

「\」の代わりに Path.DirectorySeparatorChar を 2 回使用したことにも注意してください。

于 2012-10-16T13:36:40.623 に答える