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 パラメーターを ReadWrite コンストラクターでFileStreamするように変更します。
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を返します。