Path.ChangeExtension(String, String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
更改路径字符串的扩展名。
public:
static System::String ^ ChangeExtension(System::String ^ path, System::String ^ extension);
public static string ChangeExtension (string path, string extension);
public static string? ChangeExtension (string? path, string? extension);
static member ChangeExtension : string * string -> string
Public Shared Function ChangeExtension (path As String, extension As String) As String
参数
- path
- String
要修改的路径信息。
- extension
- String
新的扩展名(有或没有前导句点)。 指定 null
以从 path
移除现有扩展名。
返回
已修改的路径信息。
在基于 Windows 的桌面平台上,如果 path
是 null
或空字符串 (“”),则返回的路径信息是未修改的。 如果 extension
为 null
,则返回的字符串包含指定的路径(其扩展名已移除)。 如果 path
不具有扩展名且 extension
不为 null
,则返回的路径字符串包含追加到 path
结尾的 extension
。
例外
.NET Framework 和 .NET Core 版本早于 2.1: path
包含 中GetInvalidPathChars()定义的一个或多个无效字符。
示例
下面的示例演示如何使用 ChangeExtension
方法。
#using <system.dll>
using namespace System;
using namespace System::IO;
void ChangeExtension()
{
String^ goodFileName = "C:\\mydir\\myfile.com.extension";
String^ badFileName = "C:\\mydir\\";
String^ result;
result = Path::ChangeExtension( goodFileName, ".old" );
Console::WriteLine( "ChangeExtension({0}, '.old') returns '{1}'", goodFileName, result );
result = Path::ChangeExtension( goodFileName, "" );
Console::WriteLine( "ChangeExtension({0}, '') returns '{1}'", goodFileName, result );
result = Path::ChangeExtension( badFileName, ".old" );
Console::WriteLine( "ChangeExtension({0}, '.old') returns '{1}'", badFileName, result );
// This code produces output similar to the following:
//
// ChangeExtension(C:\mydir\myfile.com.extension, '.old') returns 'C:\mydir\myfile.com.old'
// ChangeExtension(C:\mydir\myfile.com.extension, '') returns 'C:\mydir\myfile.com.'
// ChangeExtension(C:\mydir\, '.old') returns 'C:\mydir\.old'
using System;
using System.IO;
public class PathSnippets
{
public void ChangeExtension()
{
string goodFileName = @"C:\mydir\myfile.com.extension";
string badFileName = @"C:\mydir\";
string result;
result = Path.ChangeExtension(goodFileName, ".old");
Console.WriteLine("ChangeExtension({0}, '.old') returns '{1}'",
goodFileName, result);
result = Path.ChangeExtension(goodFileName, "");
Console.WriteLine("ChangeExtension({0}, '') returns '{1}'",
goodFileName, result);
result = Path.ChangeExtension(badFileName, ".old");
Console.WriteLine("ChangeExtension({0}, '.old') returns '{1}'",
badFileName, result);
// This code produces output similar to the following:
//
// ChangeExtension(C:\mydir\myfile.com.extension, '.old') returns 'C:\mydir\myfile.com.old'
// ChangeExtension(C:\mydir\myfile.com.extension, '') returns 'C:\mydir\myfile.com.'
// ChangeExtension(C:\mydir\, '.old') returns 'C:\mydir\.old'
Imports System.IO
Public Class PathSnippets
Public Sub ChangeExtension()
Dim goodFileName As String = "C:\mydir\myfile.com.extension"
Dim badFileName As String = "C:\mydir\"
Dim result As String
result = Path.ChangeExtension(goodFileName, ".old")
Console.WriteLine("ChangeExtension({0}, '.old') returns '{1}'", goodFileName, result)
result = Path.ChangeExtension(goodFileName, "")
Console.WriteLine("ChangeExtension({0}, '') returns '{1}'", goodFileName, result)
result = Path.ChangeExtension(badFileName, ".old")
Console.WriteLine("ChangeExtension({0}, '.old') returns '{1}'", badFileName, result)
' This code produces output similar to the following:
'
' ChangeExtension(C:\mydir\myfile.com.extension, '.old') returns 'C:\mydir\myfile.com.old'
' ChangeExtension(C:\mydir\myfile.com.extension, '') returns 'C:\mydir\myfile.com.'
' ChangeExtension(C:\mydir\, '.old') returns 'C:\mydir\.old'
注解
如果 和 extension
都不包含path
句点 (.) ,ChangeExtension
则添加句点。
参数 extension
可以包含多个句点和任何有效的路径字符,并且可以是任意长度。 如果 extension
为 null
,则返回的字符串包含带有最后句点的 的内容 path
,以及删除后的所有字符。
如果 extension
是空字符串,则返回的路径字符串包含 path
的内容,以及删除最后一个句点后的任何字符。
如果 path
没有扩展名且 extension
不是 null
,则返回的字符串包含 path
后 extension
跟 。
如果 extension
不是 null
且不包含前导句点,则添加句点。
如果 path
包含由多个句点分隔的多个扩展名,则返回的字符串将包含 与最后一个句点以及它之后的所有字符的内容 path
替换为 extension
。 例如,如果 path
为“\Dir1\examples\pathtests.csx.txt”且 extension
为“cs”,则修改后的路径为“\Dir1\examples\pathtests.csx.cs”。
无法验证返回的结果是否在所有方案中都有效。 例如,如果 path
为空, extension
则追加 。
有关常见 I/O 任务的列表,请参阅 常见 I/O 任务。