File.Open(String, FileMode, FileAccess, FileShare)是一个内置的 File 类方法,用于打开指定路径上的 FileStream,具有指定的读、写或读/写访问模式和指定的共享选项。
用法:
public static System.IO.FileStream Open (string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share);
参数:此函数接受三个参数,如下所示:
- path: This is the specified file to open.
- mode: This mode value specifies whether a new file is created if one does not exist, and also determines whether the existing file’s contents are retained or overwritten.
- access: This value specifies the operations that can be performed on the file.
- share: This value specifying the type of access other threads have to the file.
异常:
- ArgumentException:路径是一个长度为零的字符串,只包含空格,或者一个或多个由 InvalidPathChars 定义的无效字符。 OR 访问指定的读取和模式指定的 Create、CreateNew、Truncate 或 Append。
- ArgumentNullException:路径为空。
- PathTooLongException:指定的路径,文件名或两者都超过了system-defined的最大长度。
- DirectoryNotFoundException:指定的路径无效。
- IOException:打开文件时发生I /O错误。
- UnauthorizedAccessException:路径指定了一个只读文件,访问权限不是 Read。 OR path 指定了一个目录。或者调用者没有所需的权限。 OR 模式为创建,指定文件为隐藏文件。
- ArgumentOutOfRangeException:模式、访问或共享指定了无效值。
- FileNotFoundException:找不到路径中指定的文件。
- NotSupportedException:路径格式无效。
返回值:返回指定路径上的 FileStream,具有指定的读、写或读/写访问模式和指定的共享选项。
下面是说明 File.Open(String, FileMode, FileAccess, FileShare) 方法的程序。
程序1:下面的代码创建一个临时文件,将一些指定的内容写入其中,打开该文件并打印其内容。这里不允许文件共享。
C#
// C# program to illustrate the usage
// of File.Open(String, FileMode,
// FileAccess, FileShare) method
// Using System, System.IO and
// System.Text namespaces
using System;
using System.IO;
using System.Text;
class GFG {
public static void Main()
{
// Creating a temporary file
string path = Path.GetTempFileName();
using(FileStream fs = File.Open(path, FileMode.Open))
{
// Putting some contents
Byte[] info = new UTF8Encoding(true).GetBytes("GFG is a CS Portal.");
fs.Write(info, 0, info.Length);
}
// Opening the stream and reading 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));
}
}
}
}
执行:
GFG is a CS Portal.
程序2:最初,创建了一个文件 file.txt,其中的一些内容如下所示:
此代码将打开文件 file.txt 并在不允许文件共享的情况下打印其内容。
C#
// C# program to illustrate the usage
// of File.Open(String, FileMode,
// FileAccess, FileShare) method
// Using System, System.IO and
// System.Text namespaces
using System;
using System.IO;
using System.Text;
class GFG {
public static void Main()
{
// Specifying a file path
string path = @"file.txt";
// Opening above file and reading 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) {
// Printing the file contents
Console.WriteLine(temp.GetString(b));
}
}
}
}
执行:
GeeksforGeeks
相关用法
- C# File.Open(String, FileMode, FileAccess)用法及代码示例
- C# File.Open(String, FileMode)用法及代码示例
- C# Array.GetValue()方法用法及代码示例
- C# File.GetLastWriteTimeUtc()用法及代码示例
- C# MathF.Sin()用法及代码示例
- C# Double.CompareTo用法及代码示例
- C# UInt16.GetHashCode用法及代码示例
- C# Int64.CompareTo用法及代码示例
- C# MathF.Truncate()用法及代码示例
- C# MathF.Exp()用法及代码示例
- C# Array.BinarySearch(Array, Object)用法及代码示例
- C# Char.GetHashCode()用法及代码示例
- C# Char.GetTypeCode()用法及代码示例
- C# Object.GetHashCode()用法及代码示例
- C# Object.GetTypeCode()用法及代码示例
- C# Array.BinarySearch(Array, Int32, Int32, Object)用法及代码示例
- C# Stack.ToString()用法及代码示例
- C# Graphics.Clear()用法及代码示例
- C# Type.GetConstructors()用法及代码示例
- C# List.FindIndex()用法及代码示例
- C# Double.Equals()用法及代码示例
注:本文由纯净天空筛选整理自Kanchan_Ray大神的英文原创作品 File.Open(String, FileMode, FileAccess, FileShare) Method in C# with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。