public ref class File abstract sealed
public ref class File sealed
public static class File
public sealed class File
[System.Runtime.InteropServices.ComVisible(true)]
public static class File
type File = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type File = class
Public Class File
Public NotInheritable Class File
以下示例演示如何使用
File
类检查文件是否存在,并根据结果创建新文件并向其写入,或打开现有文件并从中读取。 在运行代码之前,请创建一个
c:\temp
文件夹。
using namespace System;
using namespace System::IO;
int main()
String^ path = "c:\\temp\\MyTest.txt";
if ( !File::Exists( path ) )
// Create a file to write to.
StreamWriter^ sw = File::CreateText( path );
sw->WriteLine( "Hello" );
sw->WriteLine( "And" );
sw->WriteLine( "Welcome" );
finally
if ( sw )
delete (IDisposable^)(sw);
// Open the file to read from.
StreamReader^ sr = File::OpenText( path );
String^ s = "";
while ( s = sr->ReadLine() )
Console::WriteLine( s );
finally
if ( sr )
delete (IDisposable^)(sr);
String^ path2 = String::Concat( path, "temp" );
// Ensure that the target does not exist.
File::Delete( path2 );
// Copy the file.
File::Copy( path, path2 );
Console::WriteLine( "{0} was copied to {1}.", path, path2 );
// Delete the newly created file.
File::Delete( path2 );
Console::WriteLine( "{0} was successfully deleted.", path2 );
catch ( Exception^ e )
Console::WriteLine( "The process failed: {0}", e );
using System;
using System.IO;
class Test
public static void Main()
string path = @"c:\temp\MyTest.txt";
if (!File.Exists(path))
// Create a file to write to.
using (StreamWriter sw = File.CreateText(path))
sw.WriteLine("Hello");
sw.WriteLine("And");
sw.WriteLine("Welcome");
// Open the file to read from.
using (StreamReader sr = File.OpenText(path))
string s;
while ((s = sr.ReadLine()) != null)
Console.WriteLine(s);
open System.IO
let path = @"c:\temp\MyTest.txt"
if File.Exists path |> not then
// Create a file to write to.
use sw = File.CreateText path
sw.WriteLine "Hello"
sw.WriteLine "And"
sw.WriteLine "Welcome"
// Open the file to read from.
use sr = File.OpenText path
let mutable s = sr.ReadLine()
while isNull s |> not do
printfn $"{s}"
s <- sr.ReadLine()
Imports System.IO
Public Class Test
Public Shared Sub Main()
Dim path As String = "c:\temp\MyTest.txt"
If File.Exists(path) = False Then
' Create a file to write to.
Using sw As StreamWriter = File.CreateText(path)
sw.WriteLine("Hello")
sw.WriteLine("And")
sw.WriteLine("Welcome")
End Using
End If
' Open the file to read from.
Using sr As StreamReader = File.OpenText(path)
Do While sr.Peek() >= 0
Console.WriteLine(sr.ReadLine())
End Using
End Sub
End Class
File
使用 类执行典型的操作,例如复制、移动、重命名、创建、打开、删除和追加到单个文件一次。 还可以使用
File
类获取和设置与创建、访问和写入文件相关的文件属性或
DateTime
信息。 如果要对多个文件执行操作,请参阅
Directory.GetFiles
或
DirectoryInfo.GetFiles
。
创建或打开文件时,
File
许多方法返回其他 I/O 类型。 可以使用这些其他类型进一步操作文件。 有关详细信息,请参阅特定
File
成员,例如
OpenText
、
CreateText
或
Create
。
由于所有方法都是
File
静态的,因此,如果只想执行一个
File
操作,则使用方法(而不是相应的
FileInfo
实例方法)可能更有效。 所有方法都需要
File
要操作的文件的路径。
类的
File
静态方法对所有方法执行安全检查。 如果要多次重用对象,请考虑改用 对应的实例方法
FileInfo
,因为安全检查并非始终是必需的。
默认情况下,向所有用户授予对新文件的完整读/写访问权限。
下表描述了用于自定义各种
File
方法行为的枚举。
在接受路径作为输入字符串的成员中,该路径的格式必须正常,否则将引发异常。 例如,如果路径是完全限定的,但以空格开头,则不会在 类的方法中剪裁该路径。 因此,路径格式不正确,并引发异常。 同样,路径或路径组合不能完全限定两次。 例如,“c:\temp c:\windows”在大多数情况下也会引发异常。 使用接受路径字符串的方法时,请确保路径格式良好。
在接受路径的成员中,路径可以引用文件或仅引用目录。 指定的路径还可以引用服务器和共享名称的相对路径或通用命名约定 (UNC) 路径。 例如,以下所有路径都是可接受的路径:
"c:\\\MyDir\\\MyFile.txt"
在 C# 或
"c:\MyDir\MyFile.txt"
Visual Basic 中。
"c:\\\MyDir"
在 C# 或
"c:\MyDir"
Visual Basic 中。
"MyDir\\\MySubdir"
在 C# 或
"MyDir\MySubDir"
Visual Basic 中。
"\\\\\\\MyServer\\\MyShare"
在 C# 或
"\\\MyServer\MyShare"
Visual Basic 中。
有关常见 I/O 任务的列表,请参阅
常见 I/O 任务
。