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 任务。