FileStream.CanWrite FileStream.CanWrite FileStream.CanWrite FileStream.CanWrite Property

Definição

Obtém um valor que indica se o fluxo atual dá suporte a gravação.Gets a value that indicates whether the current stream supports writing.

public:
 virtual property bool CanWrite { bool get(); };
public override bool CanWrite { get; }
member this.CanWrite : bool
Public Overrides ReadOnly Property CanWrite As Boolean

Valor da propriedade

true se o fluxo der suporte à gravação; false se o fluxo estiver fechado ou tiver sido aberto com acesso somente leitura.true if the stream supports writing; false if the stream is closed or was opened with read-only access.

Exemplos

O exemplo a seguir usa o CanWrite propriedade para verificar se um fluxo dá suporte à gravação.The following example uses the CanWrite property to check whether a stream supports writing.

using namespace System;
using namespace System::IO;
using namespace System::Text;

int main()
{
   String^ path = "c:\\temp\\MyTest.txt";
   
   // Ensure that the file is readonly.
   File::SetAttributes( path, static_cast<FileAttributes>(File::GetAttributes( path ) | FileAttributes::ReadOnly) );
   
   //Create the file.
   FileStream^ fs = gcnew FileStream( path,FileMode::OpenOrCreate,FileAccess::Read );
   try
   {
      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 );
      }
   }
   finally
   {
      if ( fs )
         delete (IDisposable^)fs;
   }
}
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);
            }
        }
    }
}
Imports System
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

A seguir está um exemplo usando o CanWrite propriedade.The following is an example using the CanWrite property. A saída desse código é "Myfile. txt é gravável."The output of this code is "MyFile.txt is writable." Para obter a mensagem de saída "Myfile. txt pode ser gravados e lidos do.", altere a FileAccess parâmetro para ReadWrite no FileStream construtor.To get the output message "MyFile.txt can be both written to and read from.", change the FileAccess parameter to ReadWrite in the FileStream constructor.

using namespace System;
using namespace System::IO;
int main( void )
{
   FileStream^ fs = gcnew 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
   {
      Console::WriteLine( "MyFile.txt is writable." );
   }

   return 0;
}

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.");
        }
    }
}
Imports System
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

Comentários

Se uma classe derivada de Stream não oferece suporte à gravação, uma chamada para SetLength, Write, BeginWrite, ou WriteByte lança um NotSupportedException.If a class derived from Stream does not support writing, a call to SetLength, Write, BeginWrite, or WriteByte throws a NotSupportedException.

Se o fluxo está fechado, essa propriedade retornará false.If the stream is closed, this property returns false.

Aplica-se a

Veja também