Path.ChangeExtension 方法

更改路径字符串的扩展名。

**命名空间:**System.IO
**程序集:**mscorlib(在 mscorlib.dll 中)

语法

声明
Public Shared Function ChangeExtension ( _
    path As String, _
    extension As String _
) As String
用法
Dim path As String
Dim extension As String
Dim returnValue As String

returnValue = Path.ChangeExtension(path, extension)
public static string ChangeExtension (
    string path,
    string extension
)
public:
static String^ ChangeExtension (
    String^ path, 
    String^ extension
)
public static String ChangeExtension (
    String path, 
    String extension
)
public static function ChangeExtension (
    path : String, 
    extension : String
) : String

参数

  • path
    要修改的路径信息。该路径不能包含在 InvalidPathChars 中定义的任何字符。
  • extension
    新的扩展名(具有前导句点)。指定 空引用(在 Visual Basic 中为 Nothing) 以从 path 移除现有扩展名。

返回值

包含修改的路径信息的字符串。 在基于 Windows 的桌面平台上,如果 path 是 空引用(在 Visual Basic 中为 Nothing) 或空字符串 (""),则返回的路径信息是未修改的。如果 extension 是 空引用(在 Visual Basic 中为 Nothing),则返回的字符串包含指定的路径,其扩展名已移除。如果 path 不具有扩展名,并且 extension 不是 空引用(在 Visual Basic 中为 Nothing),则返回的路径字符串包含 extension,它追加到 path 的结尾。

异常

异常类型 条件

ArgumentException

该路径包含一个或多个在 InvalidPathChars 中定义的无效字符或包含通配符。

备注

如果 path 和 extension 都不包含句点 (.),则 ChangeExtension 添加句点。

extension 参数可以包含多个句点和任何有效的路径字符,并且可以是任何长度。如果 extension 是 空引用(在 Visual Basic 中为 Nothing),则返回的字符串包含 path 的内容,而其最后一个句点以及句点后的所有字符均被移除。

如果 extension 是空字符串,则返回的路径字符串包含 path 的内容,其最后一个句点后的所有字符均被移除。

如果 path 不具有扩展名并且 extension 不是 空引用(在 Visual Basic 中为 Nothing),则返回的字符串包含 path,后跟 extension。

如果 extension 不是 空引用(在 Visual Basic 中为 Nothing) 并且不包含前导句点,则添加句点。

如果 path 包含由多个句点分隔的多个扩展名,则返回的字符串包含 path 的内容,其最后一个句点以及句点之后的所有字符均由 extension 代替。例如,如果 path 是“\Dir1\examples\pathtests.csx.txt”并且 extension 是“cs”,则修改后的路径是“\Dir1\examples\pathtests.csx.cs”。

不可能验证返回的结果是否在所有方案中都有效。例如,如果 path 为空,则追加 extension。

有关使用此方法的示例,请参见下面的“示例”部分。下表列出了其他典型或相关的 I/O 任务的示例。

若要执行此操作...

请参见本主题中的示例...

创建文本文件。

如何:向文件写入文本

写入文本文件。

如何:向文件写入文本

读取文本文件。

如何:从文件读取文本

检索文件扩展名。

GetExtension

检索文件的完全限定路径。

GetFullPath

只检索路径中的文件名。

GetFileNameWithoutExtension

只检索路径中的目录名。

GetDirectoryName

示例

下面的代码示例演示 ChangeExtension 方法的用法。

Imports System
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'
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'
#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 );
   
import System.*;
import 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);
var goodFileName : String = "C:\\mydir\\myfile.com.extension";
var badFileName : String = "C:\\mydir\\";
var result : 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); 

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

Path 类
Path 成员
System.IO 命名空间

其他资源

文件和流 I/O
如何:从文件读取文本
如何:向文件写入文本