FileStream.CanWrite 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
會得到一個值,表示目前串流是否支援寫入。
public:
virtual property bool CanWrite { bool get(); };
public override bool CanWrite { get; }
member this.CanWrite : bool
Public Overrides ReadOnly Property CanWrite As Boolean
屬性值
true 若串流支援書寫; false 如果串流是關閉的,或是以唯讀存取開啟。
範例
以下範例使用該 CanWrite 性質來檢查串流是否支援寫入。
using System;
using System.IO;
using System.Text;
class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
// Ensure that the file is readonly.
File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.ReadOnly);
//Create the file.
using (FileStream fs = new FileStream (path, FileMode.OpenOrCreate, FileAccess.Read))
{
if (fs.CanWrite)
{
Console.WriteLine("The stream for file {0} is writable.", path);
}
else
{
Console.WriteLine("The stream for file {0} is not writable.", path);
}
}
}
}
open System.IO
let path = @"c:\temp\MyTest.txt"
// Ensure that the file is readonly.
File.SetAttributes(path, File.GetAttributes path ||| FileAttributes.ReadOnly)
//Create the file.
do
use fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read)
if fs.CanWrite then
printfn $"The stream for file {path} is writable."
else
printfn $"The stream for file {path} is not writable."
Imports System.IO
Public Class Test
Public Shared Sub Main()
Dim path As String = "c:\temp\MyTest.txt"
'Ensure that the file is readonly.
File.SetAttributes(path, File.GetAttributes(path) Or FileAttributes.ReadOnly)
'Create the file.
Dim fs As FileStream = New FileStream(path, FileMode.OpenOrCreate, FileAccess.Read)
If fs.CanWrite Then
Console.WriteLine("The stream connected to {0} is writable.", path)
Else
Console.WriteLine("The stream connected to {0} is not writable.", path)
End If
fs.Close()
End Sub
End Class
以下是一個使用該 CanWrite 性質的範例。 這段程式碼的輸出是「MyFile.txt 是可寫的。」要得到輸出訊息「MyFile.txt 可以同時寫入或讀取。」,請在建構子中將參數改FileAccess為 。ReadWriteFileStream
using System;
using System.IO;
class TestRW
{
public static void Main(String[] args)
{
FileStream fs = new FileStream("MyFile.txt", FileMode.OpenOrCreate, FileAccess.Write);
if (fs.CanRead && fs.CanWrite)
{
Console.WriteLine("MyFile.txt can be both written to and read from.");
}
else if (fs.CanWrite)
{
Console.WriteLine("MyFile.txt is writable.");
}
}
}
open System.IO
let fs = new FileStream("MyFile.txt", FileMode.OpenOrCreate, FileAccess.Write)
if fs.CanRead && fs.CanWrite then
printfn "MyFile.txt can be both written to and read from."
elif fs.CanWrite then
printfn "MyFile.txt is writable."
Imports System.IO
Class TestRW
Public Shared Sub Main()
Dim fs As New FileStream("MyFile.txt", FileMode.OpenOrCreate, FileAccess.Write)
If fs.CanRead And fs.CanWrite Then
Console.WriteLine("MyFile.txt can be both written to and read from.")
ElseIf fs.CanWrite Then
Console.WriteLine("MyFile.txt is writable.")
End If
End Sub
End Class
備註
若衍生出的 Stream 類別不支援寫入,呼叫 SetLength、 Write、 BeginWrite或 WriteByte 拋 NotSupportedException出 。
若串流封閉,此性質返回 false。