ResXResourceReader.BasePath プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ResXFileRef オブジェクトで指定されている相対ファイル パスのベース パスを取得または設定します。
public:
property System::String ^ BasePath { System::String ^ get(); void set(System::String ^ value); };
public string BasePath { get; set; }
public string? BasePath { get; set; }
member this.BasePath : string with get, set
Public Property BasePath As String
プロパティ値
ResXFileRef オブジェクトで指定されている相対ファイル パスの前に付加されると、リソース ファイルの絶対パスとなるパス。
例外
設定操作では、XML リソース ファイルが既にアクセスされていて使用中であるため、値は指定できません。
例
次の例では、犬種の画像を含む XML リソース ファイルを作成し、リソースを作成したアプリケーションを指定する文字列リソースも作成します。 ResXFileRef オブジェクトは、バイナリ イメージ自体をリソース ファイルに格納するのではなく、イメージへのパスを格納するために使用されます。 この例では、 プロパティを BasePath 設定して、イメージのファイル名内の相対ファイル パスが C:\data\ という名前のディレクトリのサブディレクトリとして解釈されるようにします。
using System;
using System.Collections;
using System.ComponentModel.Design;
using System.Drawing;
using System.Reflection;
using System.Resources;
public class Example
{
public static void Main()
{
CreateXMLResourceFile();
// Read the resources in the XML resource file.
ResXResourceReader resx = new ResXResourceReader("DogBreeds.resx");
Console.WriteLine("Default Base Path: '{0}'", resx.BasePath);
resx.BasePath = @"C:\Data\";
Console.WriteLine("Current Base Path: '{0}'\n", resx.BasePath);
resx.UseResXDataNodes = true;
IDictionaryEnumerator dict = resx.GetEnumerator();
AssemblyName[] assemblyNames = { new AssemblyName(typeof(Bitmap).Assembly.FullName) };
while (dict.MoveNext()) {
ResXDataNode node = (ResXDataNode) dict.Value;
if (node.FileRef != null) {
object image = node.GetValue(assemblyNames);
Console.WriteLine("{0}: {1} from {2}", dict.Key,
image.GetType().Name, node.FileRef.FileName);
}
else {
Console.WriteLine("{0}: {1}", node.Name, node.GetValue((ITypeResolutionService) null));
}
}
}
private static void CreateXMLResourceFile()
{
// Define an array of ResXFileRef objects for images.
String typeName = String.Format("{0}, {1}", typeof(Bitmap).FullName,
typeof(Bitmap).Assembly.FullName);
ResXFileRef[] imageRefs =
{ new ResXFileRef(@"images\Akita.jpg", typeName),
new ResXFileRef(@"images\Dalmatian.jpg", typeName),
new ResXFileRef(@"images\Husky.jpg", typeName),
new ResXFileRef(@"images\GreatPyrenees.jpg", typeName),
new ResXFileRef(@"images\Malamute.jpg", typeName),
new ResXFileRef(@"images\newfoundland.jpg", typeName),
new ResXFileRef(@"images\Rottweiler.jpg", typeName)
};
using (ResXResourceWriter resx = new ResXResourceWriter(@".\DogBreeds.resx")) {
// Add each ResXFileRef object to the resource file.
foreach (var imageRef in imageRefs) {
// Form resource name from name of image.
String name = imageRef.FileName;
name = name.Substring(name.IndexOf(@"\") + 1);
name = name.Substring(0, name.IndexOf("."));
ResXDataNode node = new ResXDataNode(name, imageRef);
resx.AddResource(node);
}
resx.AddResource("CreatedBy", typeof(Example).Assembly.FullName);
}
}
}
// The example displays the following output:
// Default Base Path: ''
// Current Base Path: 'C:\Data\'
//
// Akita: Bitmap from C:\Data\images\Akita.jpg
// Dalmatian: Bitmap from C:\Data\images\Dalmatian.jpg
// Husky: Bitmap from C:\Data\images\Husky.jpg
// GreatPyrenees: Bitmap from C:\Data\images\GreatPyrenees.jpg
// Malamute: Bitmap from C:\Data\images\Malamute.jpg
// newfoundland: Bitmap from C:\Data\images\newfoundland.jpg
// Rottweiler: Bitmap from C:\Data\images\Rottweiler.jpg
// CreatedBy: BasePathEx1, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Imports System.Collections
Imports System.ComponentModel.Design
Imports System.Drawing
Imports System.Reflection
Imports System.Resources
Module Example
Public Sub Main()
CreateXMLResourceFile()
' Read the resources in the XML resource file.
Dim resx As New ResXResourceReader("DogBreeds.resx")
Console.WriteLine("Default Base Path: '{0}'", resx.BasePath)
resx.BasePath = "C:\Data\"
Console.WriteLine("Current Base Path: '{0}'", resx.BasePath)
Console.WriteLine()
resx.UseResXDataNodes = True
Dim dict As IDictionaryEnumerator = resx.GetEnumerator()
Dim assemblyNames() As AssemblyName =
{ New AssemblyName(GetType(Bitmap).Assembly.FullName) }
Do While dict.MoveNext()
Dim node As ResXDataNode = CType(dict.Value, ResXDataNode)
If node.FileRef IsNot Nothing Then
Dim image As Object = node.GetValue(assemblyNames)
Console.WriteLine("{0}: {1} from {2}", dict.Key, image.GetType().Name, node.FileRef.Filename)
Else
Console.WriteLine("{0}: {1}", node.Name, node.GetValue(CType(Nothing, ITypeResolutionService)))
End If
Loop
End Sub
Private Sub CreateXMLResourceFile()
' Define an array of ResXFileRef objects for images.
Dim typeName As String = String.Format("{0}, {1}", GetType(Bitmap).Fullname, GetType(Bitmap).Assembly.FullName)
Dim imageRefs() As ResXFileRef =
{ New ResXFileRef("images\Akita.jpg", typeName),
New ResXFileRef("images\Dalmatian.jpg", typeName),
New ResXFileRef("images\Husky.jpg", typeName),
New ResXFileRef("images\GreatPyrenees.jpg", typeName),
New ResXFileRef("images\Malamute.jpg", typeName),
New ResXFileRef("images\Newfoundland.jpg", typeName),
New ResXFileRef("images\Rottweiler.jpg", typeName)
}
Using resx As New ResXResourceWriter(".\DogBreeds.resx")
' Add each ResXFileRef object to the resource file.
For Each imageRef In imageRefs
' Form resource name from name of image.
Dim name As String = imageRef.FileName
name = name.Substring(name.IndexOf("\") + 1)
name = name.Substring(0, name.IndexOf("."))
Dim node As New ResXDataNode(name, imageRef)
resx.AddResource(node)
Next
resx.AddResource("CreatedBy", GetType(Example).Assembly.FullName)
End Using
End Sub
End Module
' The example displays the following output:
' Default Base Path: ''
' Current Base Path: 'C:\Data\'
'
' Akita: Bitmap from C:\Data\images\Akita.jpg
' Dalmatian: Bitmap from C:\Data\images\Dalmatian.jpg
' Husky: Bitmap from C:\Data\images\Husky.jpg
' GreatPyrenees: Bitmap from C:\Data\images\GreatPyrenees.jpg
' Malamute: Bitmap from C:\Data\images\Malamute.jpg
' Newfoundland: Bitmap from C:\Data\images\Newfoundland.jpg
' Rottweiler: Bitmap from C:\Data\images\Rottweiler.jpg
' CreatedBy: BasePathEx1, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
プロジェクトを正常にコンパイルするには、System.Drawing.dllへの参照を追加する必要があることに注意してください。 この例では、必要なイメージが C:\data\images\ という名前のディレクトリに存在することも必要です。
注釈
プロパティは、オブジェクトの BasePath プロパティResXFileRefに割り当てられている相対ファイル パス参照をFileName解決するために使用されます。 既定では、その値は で String.Empty、相対ファイル パス参照は、 プロパティによって返される現在のディレクトリとの関係で Environment.CurrentDirectory 解決されます。 リソースの列挙を開始する前に、このプロパティを設定する必要があります。
適用対象
こちらもご覧ください
.NET