Path.Combine メソッド
2 つのパス文字列を結合します。
Public Shared Function Combine( _
ByVal path1 As String, _ ByVal path2 As String _) As String
[C#]
public static string Combine(stringpath1,stringpath2);
[C++]
public: static String* Combine(String* path1,String* path2);
[JScript]
public static function Combine(
path1 : String,path2 : String) : String;
パラメータ
- path1
第 1 のパス。 - path2
第 2 のパス。
戻り値
結合したパスを含む文字列。指定したパスの 1 つが長さ 0 の文字列の場合、このメソッドは別のパスを返します。 path2 に絶対パスが含まれる場合、このメソッドは path2 を返します。
例外
例外の種類 | 条件 |
---|---|
ArgumentException | path1 または path2 に、 InvalidPathChars で定義されている無効な文字が 1 つ以上含まれています。 |
ArgumentNullException | path1 または path2 が null 参照 (Visual Basic では Nothing) です。 |
解説
path1 が DirectorySeparatorChar 、 AltDirectorySeparatorChar 、または VolumeSeparatorChar で定義された有効な区切り記号で終了していない場合は、連結前に DirectorySeparatorChar が path1 に追加されます。
path2 にルートが含まれていない (たとえば、 path2 が区切り記号またはドライブ仕様で始まらない) 場合は、間に区切り記号が入った 2 つのパスの連結が返されます。 path2 にルートが含まれている場合は、 path2 が返されます。
パラメータに空白が含まれる場合は解析されないため、 path2 が " c:\\ " の場合は path2 だけを返すのではなく、これが path1 に追加されます。
ディレクトリ名やファイル名内の無効な文字は、検索ワイルドカード文字として使用できるため、これらすべてが Combine メソッドで受け入れられないと解釈されるわけではありません。たとえば、 Path.Combine("c:\\", "*.txt")
は、ファイルを作成するときは無効ですが、検索文字列としては有効です。したがって、 Combine メソッドで正常に解釈されます。
このメソッドの使用例については、以下の「使用例」を参照してください。その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します。
実行するタスク | 参考例があるトピック |
---|---|
テキスト ファイルを作成する。 | ファイルへのテキストの書き込み |
テキスト ファイルに書き込む。 | ファイルへのテキストの書き込み |
テキスト ファイルから読み取る。 | ファイルからのテキストの読み取り |
ファイルの拡張子を取得する。 | GetExtension |
ファイルの絶対パスを取得する。 | GetFullPath |
パスからファイル名と拡張子を取得する。 | GetFileName |
パスからファイル名だけを取得する。 | GetFileNameWithoutExtension |
パスからディレクトリ名だけを取得する。 | GetDirectoryName |
ファイルの拡張子を変更する。 | ChangeExtension |
ディレクトリ内のファイルをサイズ順に並べ替える。 | GetFileSystemInfos |
ディレクトリが存在するかどうかを判別する。 | Exists |
ファイルが存在するかどうかを判別する。 | Exists |
使用例
[Visual Basic, C#, C++] Windows ベースのデスクトップ プラットフォーム上で Combine メソッドを使用する例を次に示します。
Imports System
Imports System.IO
Public Class ChangeExtensionTest
Public Shared Sub Main()
Dim path1 As String = "c:\temp"
Dim path2 As String = "subdir\file.txt"
Dim path3 As String = "c:\temp.txt"
Dim path4 As String = "c:^*&)(_=@#'\\^.*(.txt"
Dim path5 As String = ""
Dim path6 As String = Nothing
CombinePaths(path1, path2)
CombinePaths(path1, path3)
CombinePaths(path3, path2)
CombinePaths(path4, path2)
CombinePaths(path5, path2)
CombinePaths(path6, path2)
End Sub 'Main
Private Shared Sub CombinePaths(p1 As String, p2 As String)
Try
Dim combination As String = Path.Combine(p1, p2)
Console.WriteLine("When you combine '{0}' and '{1}', the result is: {2}'{3}'", p1, p2, Environment.NewLine, combination)
Catch e As Exception
Console.WriteLine("You cannot combine '{0}' and '{1}' because: {2}{3}", p1, p2, Environment.NewLine, e.Message)
End Try
Console.WriteLine()
End Sub 'CombinePaths
End Class 'ChangeExtensionTest
[C#]
using System;
using System.IO;
public class ChangeExtensionTest {
public static void Main() {
string path1 = "c:\\temp";
string path2 = "subdir\\file.txt";
string path3 = "c:\\temp.txt";
string path4 = "c:^*&)(_=@#'\\^.*(.txt";
string path5 = "";
string path6 = null;
CombinePaths(path1, path2);
CombinePaths(path1, path3);
CombinePaths(path3, path2);
CombinePaths(path4, path2);
CombinePaths(path5, path2);
CombinePaths(path6, path2);
}
private static void CombinePaths(string p1, string p2) {
try {
string combination = Path.Combine(p1, p2);
Console.WriteLine("When you combine '{0}' and '{1}', the result is: {2}'{3}'",
p1, p2, Environment.NewLine, combination);
} catch (Exception e) {
Console.WriteLine("You cannot combine '{0}' and '{1}' because: {2}{3}",
p1, p2, Environment.NewLine, e.Message);
}
Console.WriteLine();
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::IO;
void CombinePaths(String* p1, String* p2) {
try {
String* combination = Path::Combine(p1, p2);
Console::WriteLine(S"When you combine '{0}' and '{1}', the result is: {2}'{3}'",
p1, p2, Environment::NewLine, combination);
} catch (Exception* e) {
Console::WriteLine(S"You cannot combine '{0}' and '{1}' because: {2}{3}",
p1, p2, Environment::NewLine, e->Message);
}
Console::WriteLine();
}
int main() {
String* path1 = S"c:\\temp";
String* path2 = S"subdir\\file.txt";
String* path3 = S"c:\\temp.txt";
String* path4 = S"c:^*&)(_=@#'\\^.*(.txt";
String* path5 = S"";
String* path6 = 0;
CombinePaths(path1, path2);
CombinePaths(path1, path3);
CombinePaths(path3, path2);
CombinePaths(path4, path2);
CombinePaths(path5, path2);
CombinePaths(path6, path2);
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard
参照
Path クラス | Path メンバ | System.IO 名前空間 | 入出力操作 | ファイルからのテキストの読み取り | ファイルへのテキストの書き込み