File.Open Methode

Definitie

Hiermee opent u een FileStream op het opgegeven pad.

Overloads

Name Description
Open(String, FileMode)

Hiermee opent u een FileStream op het opgegeven pad met lees-/schrijftoegang zonder delen.

Open(String, FileMode, FileAccess)

Hiermee opent u een FileStream op het opgegeven pad, met de opgegeven modus en toegang zonder delen.

Open(String, FileMode, FileAccess, FileShare)

Hiermee opent u een FileStream op het opgegeven pad met de opgegeven modus met lees-, schrijf- of lees-/schrijftoegang en de opgegeven optie voor delen.

Open(String, FileMode)

Hiermee opent u een FileStream op het opgegeven pad met lees-/schrijftoegang zonder delen.

public:
 static System::IO::FileStream ^ Open(System::String ^ path, System::IO::FileMode mode);
public static System.IO.FileStream Open(string path, System.IO.FileMode mode);
static member Open : string * System.IO.FileMode -> System.IO.FileStream
Public Shared Function Open (path As String, mode As FileMode) As FileStream

Parameters

path
String

Het bestand dat moet worden geopend.

mode
FileMode

Een FileMode waarde die aangeeft of een bestand wordt gemaakt als er geen bestand bestaat en bepaalt of de inhoud van bestaande bestanden wordt bewaard of overschreven.

Retouren

Een FileStream geopend in de opgegeven modus en het opgegeven pad, met lees-/schrijftoegang en niet gedeeld.

Uitzonderingen

.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars() methode.

path is null.

Het opgegeven pad, de bestandsnaam of beide overschrijden de door het systeem gedefinieerde maximumlengte.

Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).

Er is een I/O-fout opgetreden tijdens het openen van het bestand.

path een bestand opgegeven dat het kenmerk Alleen-lezen heeft.

– of –

Deze bewerking wordt niet ondersteund op het huidige platform.

– of –

path een map opgegeven.

– of –

De beller heeft niet de vereiste machtiging.

– of –

mode is Create en het opgegeven bestand is een verborgen bestand.

mode een ongeldige waarde is opgegeven.

Het opgegeven path bestand is niet gevonden.

path heeft een ongeldige indeling.

Voorbeelden

In het volgende codevoorbeeld wordt een tijdelijk bestand gemaakt en wordt er tekst naar geschreven. Het voorbeeld opent vervolgens het bestand met behulp van T:System.IO.FileMode.Open; als het bestand nog niet bestaat, zou het dus niet worden gemaakt.

using System;
using System.IO;
using System.Text;

class Test
{
    public static void Main()
    {
        // Create a temporary file, and put some data into it.
        string path = Path.GetTempFileName();
        using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Write, FileShare.None))
        {
            Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
            // Add some information to the file.
            fs.Write(info, 0, info.Length);
        }

        // Open the stream and read it back.
        using (FileStream fs = File.Open(path, FileMode.Open))
        {
            byte[] b = new byte[1024];
            UTF8Encoding temp = new UTF8Encoding(true);

            while (fs.Read(b,0,b.Length) > 0)
            {
                Console.WriteLine(temp.GetString(b));
            }
        }
    }
}
open System.IO
open System.Text

// Create a temporary file, and put some data into it.
let path = Path.GetTempFileName()

do
    use fs =
        File.Open(path, FileMode.Open, FileAccess.Write, FileShare.None)

    let info =
        UTF8Encoding(true)
            .GetBytes "This is some text in the file."
    // Add some information to the file.
    fs.Write(info, 0, info.Length)

// Open the stream and read it back.
do
    use fs = File.Open(path, FileMode.Open)
    let b = Array.zeroCreate 1024
    let temp = UTF8Encoding true

    while fs.Read(b, 0, b.Length) > 0 do
        printfn $"{temp.GetString b}"
Imports System.IO
Imports System.Text

Public Class Test
  Public Shared Sub Main()
  
    ' Create a temporary file, and put some data into it. 
    Dim path1 As String = Path.GetTempFileName()
    Using fs As FileStream = File.Open(path1, FileMode.Open, FileAccess.Write, FileShare.None)
      Dim info As Byte() = New UTF8Encoding(True).GetBytes("This is some text in the file.")
      ' Add some information to the file.
      fs.Write(info, 0, info.Length)
    End Using

    ' Open the stream and read it back. 
    Using fs As FileStream = File.Open(path1, FileMode.Open)
      Dim b(1023) As Byte
      Dim temp As UTF8Encoding = New UTF8Encoding(True)
      Do While fs.Read(b, 0, b.Length) > 0
        Console.WriteLine(temp.GetString(b))
      Loop
    End Using

  End Sub
End Class

Opmerkingen

De path parameter mag relatieve of absolute padgegevens opgeven. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap. Als u de huidige werkmap wilt ophalen, raadpleegt GetCurrentDirectoryu .

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op

Open(String, FileMode, FileAccess)

Hiermee opent u een FileStream op het opgegeven pad, met de opgegeven modus en toegang zonder delen.

public:
 static System::IO::FileStream ^ Open(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access);
public static System.IO.FileStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access);
static member Open : string * System.IO.FileMode * System.IO.FileAccess -> System.IO.FileStream
Public Shared Function Open (path As String, mode As FileMode, access As FileAccess) As FileStream

Parameters

path
String

Het bestand dat moet worden geopend.

mode
FileMode

Een FileMode waarde die aangeeft of een bestand wordt gemaakt als er geen bestand bestaat en bepaalt of de inhoud van bestaande bestanden wordt bewaard of overschreven.

access
FileAccess

Een FileAccess waarde die de bewerkingen aangeeft die op het bestand kunnen worden uitgevoerd.

Retouren

Een niet-gedeeld bestand FileStream dat toegang biedt tot het opgegeven bestand, met de opgegeven modus en toegang.

Uitzonderingen

.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars() methode.

– of –

accessopgegeven en mode opgegeven CreateRead , CreateNew, of TruncateAppend.

path is null.

Het opgegeven pad, de bestandsnaam of beide overschrijden de door het systeem gedefinieerde maximumlengte.

Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).

Er is een I/O-fout opgetreden tijdens het openen van het bestand.

path een bestand opgegeven dat alleen-lezen is en access niet Readis.

– of –

path een map opgegeven.

– of –

De beller heeft niet de vereiste machtiging.

– of –

mode is Create en het opgegeven bestand is een verborgen bestand.

mode of access geef een ongeldige waarde op.

Het opgegeven path bestand is niet gevonden.

path heeft een ongeldige indeling.

Voorbeelden

In het volgende voorbeeld wordt een bestand geopend met alleen-lezentoegang.

using System;
using System.IO;
using System.Text;

class Test
{
    public static void Main()
    {
        // This sample assumes that you have a folder named "c:\temp" on your computer.
        string filePath = @"c:\temp\MyTest.txt";

        // Delete the file if it exists.
        if (File.Exists(filePath))
        {
            File.Delete(filePath);
        }

        // Create the file.
        using (FileStream fs = File.Create(filePath))
        {
            Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
            // Add some information to the file.
            fs.Write(info, 0, info.Length);
        }

        // Open the stream and read it back.
        using (FileStream fs = File.Open(filePath, FileMode.Open, FileAccess.Read))
        {
            byte[] b = new byte[1024];
            UTF8Encoding temp = new UTF8Encoding(true);

            while (fs.Read(b,0,b.Length) > 0)
            {
                Console.WriteLine(temp.GetString(b));
            }

            try
            {
                // Try to write to the file.
                fs.Write(b,0,b.Length);
            }
            catch (Exception e)
            {
                Console.WriteLine("Writing was disallowed, as expected: {0}", e.ToString());
            }
        }
    }
}
open System.IO
open System.Text

// This sample assumes that you have a folder named "c:\temp" on your computer.
let filePath = @"c:\temp\MyTest.txt"

// Delete the file if it exists.
if File.Exists filePath then
    File.Delete filePath

// Create the file.
do
    use fs = File.Create filePath

    let info =
        UTF8Encoding(true)
            .GetBytes "This is some text in the file."
    // Add some information to the file.
    fs.Write(info, 0, info.Length)

// Open the stream and read it back.
do
    use fs =
        File.Open(filePath, FileMode.Open, FileAccess.Read)

    let b = Array.zeroCreate 1024
    let temp = UTF8Encoding true

    while fs.Read(b, 0, b.Length) > 0 do
        printfn $"{temp.GetString b}"

    try
        // Try to write to the file.
        fs.Write(b, 0, b.Length)
    with
    | e -> printfn $"Writing was disallowed, as expected: {e}"
Imports System.IO
Imports System.Text

Public Class Test
  Public Shared Sub Main()
    ' This sample assumes that you have a folder named "c:\temp" on your computer. 
    Dim filePath As String = "c:\temp\MyTest.txt"

    ' Delete the file if it exists. 
    If File.Exists(filePath) Then
      File.Delete(filePath)
    End If

    ' Create the file.
    Using fs As FileStream = File.Create(filePath)
      Dim info As Byte() = New UTF8Encoding(True).GetBytes("This is some text in the file.")

      ' Add some information to the file.
      fs.Write(info, 0, info.Length)
    End Using

    ' Open the stream and read it back.
    Using fs As FileStream = File.Open(filePath, FileMode.Open, FileAccess.Read)
      Dim b(1023) As Byte
      Dim temp As UTF8Encoding = New UTF8Encoding(True)

      ' Display the information on the console. 
      Do While fs.Read(b, 0, b.Length) > 0
        Console.WriteLine(temp.GetString(b))
      Loop

      Try
        ' Try to write to the file
        fs.Write(b, 0, b.Length)
      Catch e As Exception
        Console.WriteLine("Writing was disallowed, as expected: " & e.ToString())
      End Try

    End Using

  End Sub
End Class

Opmerkingen

De path parameter mag relatieve of absolute padgegevens opgeven. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap. Als u de huidige werkmap wilt ophalen, raadpleegt GetCurrentDirectoryu .

Zie ook

Van toepassing op

Open(String, FileMode, FileAccess, FileShare)

Hiermee opent u een FileStream op het opgegeven pad met de opgegeven modus met lees-, schrijf- of lees-/schrijftoegang en de opgegeven optie voor delen.

public:
 static System::IO::FileStream ^ Open(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access, System::IO::FileShare share);
public static System.IO.FileStream Open(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share);
static member Open : string * System.IO.FileMode * System.IO.FileAccess * System.IO.FileShare -> System.IO.FileStream
Public Shared Function Open (path As String, mode As FileMode, access As FileAccess, share As FileShare) As FileStream

Parameters

path
String

Het bestand dat moet worden geopend.

mode
FileMode

Een FileMode waarde die aangeeft of een bestand wordt gemaakt als er geen bestand bestaat en bepaalt of de inhoud van bestaande bestanden wordt bewaard of overschreven.

access
FileAccess

Een FileAccess waarde die de bewerkingen aangeeft die op het bestand kunnen worden uitgevoerd.

share
FileShare

Een FileShare waarde die het type toegang aangeeft dat andere threads voor het bestand hebben.

Retouren

Een FileStream op het opgegeven pad met de opgegeven modus met lees-, schrijf- of lees-/schrijftoegang en de opgegeven optie voor delen.

Uitzonderingen

.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars() methode.

– of –

accessopgegeven en mode opgegeven CreateRead , CreateNew, of TruncateAppend.

path is null.

Het opgegeven pad, de bestandsnaam of beide overschrijden de door het systeem gedefinieerde maximumlengte.

Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).

Er is een I/O-fout opgetreden tijdens het openen van het bestand.

path een bestand opgegeven dat alleen-lezen is en access niet Readis.

– of –

path een map opgegeven.

– of –

De beller heeft niet de vereiste machtiging.

– of –

mode is Create en het opgegeven bestand is een verborgen bestand.

mode, accessof share geef een ongeldige waarde op.

Het opgegeven path bestand is niet gevonden.

path heeft een ongeldige indeling.

Voorbeelden

In het volgende voorbeeld wordt een bestand geopend met alleen-lezentoegang en met het delen van bestanden is niet toegestaan.

using System;
using System.IO;
using System.Text;

class Test
{
    public static void Main()
    {
        string path = @"c:\temp\MyTest.txt";

        // Create the file if it does not exist.
        if (!File.Exists(path))
        {
            // Create the file.
            using (FileStream fs = File.Create(path))
            {
                Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");

                // Add some information to the file.
                fs.Write(info, 0, info.Length);
            }
        }

        // Open the stream and read it back.
        using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None))
        {
            byte[] b = new byte[1024];
            UTF8Encoding temp = new UTF8Encoding(true);

            while (fs.Read(b,0,b.Length) > 0)
            {
                Console.WriteLine(temp.GetString(b));
            }

            try
            {
                // Try to get another handle to the same file.
                using (FileStream fs2 = File.Open(path, FileMode.Open))
                {
                    // Do some task here.
                }
            }
            catch (Exception e)
            {
                Console.Write("Opening the file twice is disallowed.");
                Console.WriteLine(", as expected: {0}", e.ToString());
            }
        }
    }
}
open System.IO
open System.Text

let path = @"c:\temp\MyTest.txt"

// Create the file if it does not exist.
if File.Exists path |> not then
    // Create the file.
    use fs = File.Create path

    let info =
        UTF8Encoding(true)
            .GetBytes "This is some text in the file."

    // Add some information to the file.
    fs.Write(info, 0, info.Length)

// Open the stream and read it back.
do
    use fs =
        File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None)

    let b = Array.zeroCreate 1024
    let temp = UTF8Encoding true

    while fs.Read(b, 0, b.Length) > 0 do
        printfn $"{temp.GetString b}"

    try
        // Try to get another handle to the same file.
        use fs2 = File.Open(path, FileMode.Open)
        // Do some task here.
        ()
    with
    | e -> printf "Opening the file twice is disallowed, as expected: {e}"
Imports System.IO
Imports System.Text

Public Class Test
  Public Shared Sub Main()
    Dim path As String = "c:\temp\MyTest.txt"

    ' Create the file if it does not exist. 
    If Not File.Exists(path) Then
      ' Create the file.
      Using fs As FileStream = File.Create(path)
        Dim info As Byte() = New UTF8Encoding(True).GetBytes("This is some text in the file.")

        ' Add some information to the file.
        fs.Write(info, 0, info.Length)
      End Using
    End If

    ' Open the stream and read it back.
    Using fs As FileStream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None)
      Dim b(1023) As Byte
      Dim temp As UTF8Encoding = New UTF8Encoding(True)

      Do While fs.Read(b, 0, b.Length) > 0
        Console.WriteLine(temp.GetString(b))
      Loop

      Try
        ' Try to get another handle to the same file. 
        Using fs2 As FileStream = File.Open(path, FileMode.Open)
          ' Do some task here.
        End Using
      Catch e As Exception
        Console.Write("Opening the file twice is disallowed.")
        Console.WriteLine(", as expected: {0}", e.ToString())
      End Try

    End Using

  End Sub
End Class

Opmerkingen

De path parameter mag relatieve of absolute padgegevens opgeven. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap. Als u de huidige werkmap wilt ophalen, raadpleegt GetCurrentDirectoryu .

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Zie ook

Van toepassing op