File.Open Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Öppnar en FileStream på den angivna sökvägen.
Överlagringar
| Name | Description |
|---|---|
| Open(String, FileMode) |
Öppnar en FileStream på den angivna sökvägen med läs-/skrivåtkomst utan delning. |
| Open(String, FileMode, FileAccess) |
Öppnar en FileStream på den angivna sökvägen, med angivet läge och åtkomst utan delning. |
| Open(String, FileMode, FileAccess, FileShare) |
Öppnar en FileStream på den angivna sökvägen med det angivna läget med läs-, skriv- eller läs-/skrivåtkomst och det angivna delningsalternativet. |
Open(String, FileMode)
Öppnar en FileStream på den angivna sökvägen med läs-/skrivåtkomst utan delning.
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
Parametrar
- path
- String
Filen som ska öppnas.
- mode
- FileMode
Ett FileMode värde som anger om en fil skapas om den inte finns och avgör om innehållet i befintliga filer behålls eller skrivs över.
Returer
En FileStream som har öppnats i det angivna läget och sökvägen, med läs-/skrivåtkomst och inte delad.
Undantag
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ett eller flera ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars() av metoden .
path är null.
Den angivna sökvägen, filnamnet eller båda överskrider den systemdefinierade maximala längden.
Den angivna sökvägen är ogiltig (den finns till exempel på en ommappad enhet).
Ett I/O-fel uppstod när filen öppnades.
path har angett en fil som är skrivskyddad.
-eller-
Den här åtgärden stöds inte på den aktuella plattformen.
-eller-
path har angett en katalog.
-eller-
Anroparen har inte den behörighet som krävs.
-eller-
mode är Create och den angivna filen är en dold fil.
mode angett ett ogiltigt värde.
Filen som angavs i path hittades inte.
path är i ett ogiltigt format.
Exempel
I följande kodexempel skapas en temporär fil och text skrivs till den. Exemplet öppnar sedan filen med hjälp av T:System.IO.FileMode.Open; Om filen inte redan fanns skulle den alltså inte skapas.
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
Kommentarer
Parametern path tillåts ange relativ eller absolut sökvägsinformation. Relativ sökvägsinformation tolkas som relativ till den aktuella arbetskatalogen. Information om hur du hämtar den aktuella arbetskatalogen finns i GetCurrentDirectory.
En lista över vanliga I/O-uppgifter finns i Vanliga I/O-uppgifter.
Se även
Gäller för
Open(String, FileMode, FileAccess)
Öppnar en FileStream på den angivna sökvägen, med angivet läge och åtkomst utan delning.
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
Parametrar
- path
- String
Filen som ska öppnas.
- mode
- FileMode
Ett FileMode värde som anger om en fil skapas om den inte finns och avgör om innehållet i befintliga filer behålls eller skrivs över.
- access
- FileAccess
Ett FileAccess värde som anger de åtgärder som kan utföras på filen.
Returer
En odelad FileStream fil som ger åtkomst till den angivna filen med angivet läge och åtkomst.
Undantag
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ett eller flera ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars() av metoden .
-eller-
access angiven Read och mode angiven Create, CreateNew, Truncateeller Append.
path är null.
Den angivna sökvägen, filnamnet eller båda överskrider den systemdefinierade maximala längden.
Den angivna sökvägen är ogiltig (den finns till exempel på en ommappad enhet).
Ett I/O-fel uppstod när filen öppnades.
path har angett en fil som är skrivskyddad och access inte Readär .
-eller-
path har angett en katalog.
-eller-
Anroparen har inte den behörighet som krävs.
-eller-
mode är Create och den angivna filen är en dold fil.
mode eller access angett ett ogiltigt värde.
Filen som angavs i path hittades inte.
path är i ett ogiltigt format.
Exempel
I följande exempel öppnas en fil med skrivskyddad åtkomst.
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
Kommentarer
Parametern path tillåts ange relativ eller absolut sökvägsinformation. Relativ sökvägsinformation tolkas som relativ till den aktuella arbetskatalogen. Information om hur du hämtar den aktuella arbetskatalogen finns i GetCurrentDirectory.
Se även
Gäller för
Open(String, FileMode, FileAccess, FileShare)
Öppnar en FileStream på den angivna sökvägen med det angivna läget med läs-, skriv- eller läs-/skrivåtkomst och det angivna delningsalternativet.
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
Parametrar
- path
- String
Filen som ska öppnas.
- mode
- FileMode
Ett FileMode värde som anger om en fil skapas om den inte finns och avgör om innehållet i befintliga filer behålls eller skrivs över.
- access
- FileAccess
Ett FileAccess värde som anger de åtgärder som kan utföras på filen.
Returer
A FileStream på den angivna sökvägen, med det angivna läget med läs-, skriv- eller läs-/skrivåtkomst och det angivna delningsalternativet.
Undantag
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ett eller flera ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars() av metoden .
-eller-
access angiven Read och mode angiven Create, CreateNew, Truncateeller Append.
path är null.
Den angivna sökvägen, filnamnet eller båda överskrider den systemdefinierade maximala längden.
Den angivna sökvägen är ogiltig (den finns till exempel på en ommappad enhet).
Ett I/O-fel uppstod när filen öppnades.
path har angett en fil som är skrivskyddad och access inte Readär .
-eller-
path har angett en katalog.
-eller-
Anroparen har inte den behörighet som krävs.
-eller-
mode är Create och den angivna filen är en dold fil.
mode, accesseller share angett ett ogiltigt värde.
Filen som angavs i path hittades inte.
path är i ett ogiltigt format.
Exempel
I följande exempel öppnas en fil med skrivskyddad åtkomst och fildelning tillåts inte.
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
Kommentarer
Parametern path tillåts ange relativ eller absolut sökvägsinformation. Relativ sökvägsinformation tolkas som relativ till den aktuella arbetskatalogen. Information om hur du hämtar den aktuella arbetskatalogen finns i GetCurrentDirectory.
En lista över vanliga I/O-uppgifter finns i Vanliga I/O-uppgifter.