FileStream Costruttori

Definizione

Inizializza una nuova istanza della classe FileStream.Initializes a new instance of the FileStream class.

Overload

FileStream(SafeFileHandle, FileAccess)

Inizializza una nuova istanza della classe FileStream per l'handle di file specificato, con l'autorizzazione di lettura/scrittura specificata.Initializes a new instance of the FileStream class for the specified file handle, with the specified read/write permission.

FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)

Inizializza una nuova istanza della classe FileStream con il percorso, la modalità di creazione, i diritti di accesso e l'autorizzazione di condivisione, la dimensione del buffer, le opzioni aggiuntive del file, il controllo di accesso e la sicurezza di controllo specificati.Initializes a new instance of the FileStream class with the specified path, creation mode, access rights and sharing permission, the buffer size, additional file options, access control and audit security.

FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions)

Inizializza una nuova istanza della classe FileStream con il percorso, la modalità di creazione, i diritti di accesso e l'autorizzazione di condivisione, la dimensione del buffer e le opzioni aggiuntive del file specificati.Initializes a new instance of the FileStream class with the specified path, creation mode, access rights and sharing permission, the buffer size, and additional file options.

FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean)

Inizializza una nuova istanza della classe FileStream con il percorso, la modalità di creazione, l'autorizzazione di lettura/scrittura e condivisione, la dimensione del buffer e lo stato sincrono o asincrono specificati.Initializes a new instance of the FileStream class with the specified path, creation mode, read/write and sharing permission, buffer size, and synchronous or asynchronous state.

FileStream(String, FileMode, FileAccess, FileShare, Int32)

Inizializza una nuova istanza della classe FileStream con il percorso, la modalità di creazione, l'autorizzazione di lettura/scrittura e condivisione e la dimensione del buffer specificati.Initializes a new instance of the FileStream class with the specified path, creation mode, read/write and sharing permission, and buffer size.

FileStream(IntPtr, FileAccess, Boolean, Int32, Boolean)

Inizializza una nuova istanza della classe FileStream per l'handle di file specificato, con l'autorizzazione di lettura/scrittura, la proprietà dell'istanza di FileStream, la dimensione del buffer e lo stato sincrono o asincrono specificati.Initializes a new instance of the FileStream class for the specified file handle, with the specified read/write permission, FileStream instance ownership, buffer size, and synchronous or asynchronous state.

FileStream(String, FileMode, FileAccess, FileShare)

Inizializza una nuova istanza della classe FileStream con il percorso, la modalità di creazione, l'autorizzazione di lettura/scrittura e l'autorizzazione di condivisione specificati.Initializes a new instance of the FileStream class with the specified path, creation mode, read/write permission, and sharing permission.

FileStream(String, FileMode, FileAccess, FileShare, Int32, FileOptions)

Inizializza una nuova istanza della classe FileStream con il percorso, la modalità di creazione, l'autorizzazione di lettura/scrittura e condivisione, l'accesso consentito ad altri FileStream allo stesso file, la dimensione del buffer e le opzioni aggiuntive del file specificati.Initializes a new instance of the FileStream class with the specified path, creation mode, read/write and sharing permission, the access other FileStreams can have to the same file, the buffer size, and additional file options.

FileStream(SafeFileHandle, FileAccess, Int32, Boolean)

Inizializza una nuova istanza della classe FileStream per l'handle di file specificato, con l'autorizzazione di lettura/scrittura, la dimensione del buffer e lo stato sincrono o asincrono specificati.Initializes a new instance of the FileStream class for the specified file handle, with the specified read/write permission, buffer size, and synchronous or asynchronous state.

FileStream(String, FileMode, FileAccess)

Inizializza una nuova istanza della classe FileStream con il percorso, la modalità di creazione e l'autorizzazione di lettura/scrittura specificati.Initializes a new instance of the FileStream class with the specified path, creation mode, and read/write permission.

FileStream(IntPtr, FileAccess, Boolean)

Inizializza una nuova istanza della classe FileStream per l'handle di file specificato, con l'autorizzazione di lettura/scrittura e la proprietà dell'istanza di FileStream.Initializes a new instance of the FileStream class for the specified file handle, with the specified read/write permission and FileStream instance ownership.

FileStream(SafeFileHandle, FileAccess, Int32)

Inizializza una nuova istanza della classe FileStream per l'handle di file specificato, con l'autorizzazione di lettura/scrittura e la dimensione del buffer specificate.Initializes a new instance of the FileStream class for the specified file handle, with the specified read/write permission, and buffer size.

FileStream(IntPtr, FileAccess, Boolean, Int32)

Inizializza una nuova istanza della classe FileStream per l'handle di file specificato, con l'autorizzazione di lettura/scrittura, la proprietà dell'istanza di FileStream e la dimensione del buffer specificate.Initializes a new instance of the FileStream class for the specified file handle, with the specified read/write permission, FileStream instance ownership, and buffer size.

FileStream(String, FileMode)

Inizializza una nuova istanza della classe FileStream con il percorso e la modalità di creazione specificati.Initializes a new instance of the FileStream class with the specified path and creation mode.

FileStream(IntPtr, FileAccess)

Inizializza una nuova istanza della classe FileStream per l'handle di file specificato, con l'autorizzazione di lettura/scrittura specificata.Initializes a new instance of the FileStream class for the specified file handle, with the specified read/write permission.

FileStream(SafeFileHandle, FileAccess)

Inizializza una nuova istanza della classe FileStream per l'handle di file specificato, con l'autorizzazione di lettura/scrittura specificata.Initializes a new instance of the FileStream class for the specified file handle, with the specified read/write permission.

public:
 FileStream(Microsoft::Win32::SafeHandles::SafeFileHandle ^ handle, System::IO::FileAccess access);
public FileStream (Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access);
new System.IO.FileStream : Microsoft.Win32.SafeHandles.SafeFileHandle * System.IO.FileAccess -> System.IO.FileStream
Public Sub New (handle As SafeFileHandle, access As FileAccess)

Parametri

handle
SafeFileHandle

Handle di file relativo al file che sarà incapsulato nell'oggetto FileStream corrente.A file handle for the file that the current FileStream object will encapsulate.

access
FileAccess

Combinazione bit per bit dei valori di enumerazione, che imposta le proprietà CanRead e CanWrite dell'oggetto FileStream.A bitwise combination of the enumeration values that sets the CanRead and CanWrite properties of the FileStream object.

Eccezioni

access non è un campo di FileAccess.access is not a field of FileAccess.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

Si è verificato un errore di I/O, ad esempio un errore del disco.An I/O error, such as a disk error, occurred.

-oppure--or-

Il flusso è stato chiuso.The stream has been closed.

L'oggetto access richiesto non è consentito dal sistema operativo per l'handle di file specificato, ad esempio quando access è Write o ReadWrite e l'handle di file è impostato per l'accesso in sola lettura.The access requested is not permitted by the operating system for the specified file handle, such as when access is Write or ReadWrite and the file handle is set for read-only access.

Commenti

Quando viene chiamato Close, viene chiuso anche l'handle e il numero di handle del file viene decrementato.When Close is called, the handle is also closed and the file's handle count is decremented.

FileStream presuppone che disponga di controllo esclusivo sull'handle.FileStream assumes that it has exclusive control over the handle. La lettura, la scrittura o la ricerca mentre un FileStream contiene anche un handle può causare il danneggiamento dei dati.Reading, writing, or seeking while a FileStream is also holding a handle could result in data corruption. Per la sicurezza dei dati, chiamare Flush prima di usare l'handle ed evitare di chiamare metodi diversi da Close dopo aver completato l'utilizzo dell'handle.For data safety, call Flush before using the handle, and avoid calling any methods other than Close after you are done using the handle.

Attenzione

Quando si compila un set di caratteri con una particolare impostazione culturale e si recuperano gli stessi caratteri con un'impostazione culturale diversa, i caratteri potrebbero non essere interpretabili e potrebbe causare la generazione di un'eccezione.When you compile a set of characters with a particular cultural setting and retrieve those same characters with a different cultural setting, the characters might not be interpretable, and could cause an exception to be thrown.

FileShare.Read è l'impostazione predefinita per i costruttori FileStream senza un parametro di FileShare.FileShare.Read is the default for those FileStream constructors without a FileShare parameter.

Per un elenco delle operazioni comuni di file e directory, vedere attività di I/O comuni.For a list of common file and directory operations, see Common I/O Tasks.

Sicurezza

FileIOPermission
per la lettura, la scrittura e l'accodamento ai file.for reading, writing, and appending to files. Enumerazioni associate: Read, Writee Append.Associated enumerations: Read, Write, and Append.

Vedi anche

FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)

Inizializza una nuova istanza della classe FileStream con il percorso, la modalità di creazione, i diritti di accesso e l'autorizzazione di condivisione, la dimensione del buffer, le opzioni aggiuntive del file, il controllo di accesso e la sicurezza di controllo specificati.Initializes a new instance of the FileStream class with the specified path, creation mode, access rights and sharing permission, the buffer size, additional file options, access control and audit security.

public:
 FileStream(System::String ^ path, System::IO::FileMode mode, System::Security::AccessControl::FileSystemRights rights, System::IO::FileShare share, int bufferSize, System::IO::FileOptions options, System::Security::AccessControl::FileSecurity ^ fileSecurity);
public FileStream (string path, System.IO.FileMode mode, System.Security.AccessControl.FileSystemRights rights, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options, System.Security.AccessControl.FileSecurity fileSecurity);
new System.IO.FileStream : string * System.IO.FileMode * System.Security.AccessControl.FileSystemRights * System.IO.FileShare * int * System.IO.FileOptions * System.Security.AccessControl.FileSecurity -> System.IO.FileStream

Parametri

path
String

Percorso relativo o assoluto per il file che sarà incapsulato dall'oggetto FileStream corrente.A relative or absolute path for the file that the current FileStream object will encapsulate.

mode
FileMode

Uno dei valori di enumerazione che determina come aprire o creare il file.One of the enumeration values that determines how to open or create the file.

rights
FileSystemRights

Combinazione bit per bit dei valori di enumerazione che determina i diritti di accesso da usare quando si creano regole di accesso e di controllo per il file.A bitwise combination of the enumeration values that determines the access rights to use when creating access and audit rules for the file.

share
FileShare

Combinazione bit per bit dei valori di enumerazione che determina come il file verrà condiviso dai processi.A bitwise combination of the enumeration values that determines how the file will be shared by processes.

bufferSize
Int32

Valore positivo Int32 maggiore di 0 che indica la dimensione del buffer.A positive Int32 value greater than 0 indicating the buffer size. La dimensione del buffer predefinita è 4096.The default buffer size is 4096.

options
FileOptions

Combinazione bit per bit dei valori di enumerazione che specifica le opzioni dei file aggiuntive.A bitwise combination of the enumeration values that specifies additional file options.

fileSecurity
FileSecurity

Oggetto che determina il controllo di accesso e la sicurezza di controllo per il file.An object that determines the access control and audit security for the file.

Eccezioni

path è null.path is null.

path è una stringa vuota (""), contiene solo spazi vuoti oppure contiene uno o più caratteri non validi.path is an empty string (""), contains only white space, or contains one or more invalid characters.

-oppure--or- path fa riferimento a dispositivi non basati su file come "con:", "com1:", "lpt1:" e così via in un ambiente NTFS.path refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.

path fa riferimento a dispositivi non basati su file come "con:", "com1:", "lpt1:" e così via in un ambiente non NTFS.path refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.

bufferSize è un valore negativo o zero.bufferSize is negative or zero.

-oppure--or- mode, access o share contiene un valore non valido.mode, access, or share contain an invalid value.

Il file non è stato trovato, ad esempio se mode è FileMode.Truncate o FileMode.Open e il file specificato da path non esiste.The file cannot be found, such as when mode is FileMode.Truncate or FileMode.Open, and the file specified by path does not exist. È necessario che il file sia già disponibile in queste modalità.The file must already exist in these modes.

Si è verificato un errore di I/O, ad esempio quando si specifica FileMode.CreateNew e il file specificato da path è già presente.An I/O error, such as specifying FileMode.CreateNew when the file specified by path already exists, occurred.

-oppure--or- Il flusso è stato chiuso.The stream has been closed.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

Il percorso specificato non è valido, ad esempio si trova in un'unità non mappata.The specified path is invalid, such as being on an unmapped drive.

L'oggetto access richiesto non è consentito dal sistema operativo per l'oggetto path specificato, ad esempio quando access è Write o ReadWrite e la directory o il file è impostato per l'accesso in sola lettura.The access requested is not permitted by the operating system for the specified path, such as when access is Write or ReadWrite and the file or directory is set for read-only access.

-oppure--or- Encrypted è specificato per options, ma la crittografia del file non è supportata sulla piattaforma corrente.Encrypted is specified for options, but file encryption is not supported on the current platform.

L'oggetto path specificato, il nome file o entrambi superano la lunghezza massima definita dal sistema.The specified path, file name, or both exceed the system-defined maximum length.

Il sistema operativo corrente non è Windows NT o versioni successive.The current operating system is not Windows NT or later.

Esempi

Nell'esempio seguente vengono scritti i dati in un file e quindi vengono letti i dati utilizzando l'oggetto FileStream.The following example writes data to a file and then reads the data using the FileStream object.

using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Security::AccessControl;
using namespace System::Security::Principal;

int main()
{
    try
    {
        // Create a file and write data to it.

        // Create an array of bytes.
        array<Byte>^ messageByte =
            Encoding::ASCII->GetBytes("Here is some data.");

        // Specify an access control list (ACL)
        FileSecurity^ fs = gcnew FileSecurity();

        fs->AddAccessRule(
            gcnew FileSystemAccessRule("MYDOMAIN\\MyAccount",
            FileSystemRights::Modify, AccessControlType::Allow));

        // Create a file using the FileStream class.
        FileStream^ fWrite = gcnew FileStream("test.txt",
            FileMode::Create, FileSystemRights::Modify,
            FileShare::None, 8, FileOptions::None, fs);

        // Write the number of bytes to the file.
        fWrite->WriteByte((Byte)messageByte->Length);

        // Write the bytes to the file.
        fWrite->Write(messageByte, 0, messageByte->Length);

        // Close the stream.
        fWrite->Close();

        // Open a file and read the number of bytes.

        FileStream^ fRead = 
            gcnew FileStream("test.txt", FileMode::Open);

        // The first byte is the string length.
        int length = (int)fRead->ReadByte();

        // Create a new byte array for the data.
        array<Byte>^ readBytes = gcnew array<Byte>(length);

        // Read the data from the file.
        fRead->Read(readBytes, 0, readBytes->Length);

        // Close the stream.
        fRead->Close();

        // Display the data.
        Console::WriteLine(Encoding::ASCII->GetString(readBytes));

        Console::WriteLine("Done writing and reading data.");
    }

    catch (IdentityNotMappedException^)
    {
        Console::WriteLine("You need to use your own credentials " +
            " 'MYDOMAIN\\MyAccount'.");
    }

    catch (IOException^ ex)
    {
        Console::WriteLine(ex->Message);
    }
}

using System;
using System.IO;
using System.Text;
using System.Security.AccessControl;

namespace FileSystemExample
{
    class FileStreamExample
    {
        public static void Main()
        {
            try
            {
                // Create a file and write data to it.

                // Create an array of bytes.
                byte[] messageByte = Encoding.ASCII.GetBytes("Here is some data.");

                // Specify an access control list (ACL)
                FileSecurity fs = new FileSecurity();

                fs.AddAccessRule(new FileSystemAccessRule(@"DOMAINNAME\AccountName",
                                                            FileSystemRights.ReadData,
                                                            AccessControlType.Allow));

                // Create a file using the FileStream class.
                FileStream fWrite = new FileStream("test.txt", FileMode.Create, FileSystemRights.Modify, FileShare.None, 8, FileOptions.None, fs);

                // Write the number of bytes to the file.
                fWrite.WriteByte((byte)messageByte.Length);

                // Write the bytes to the file.
                fWrite.Write(messageByte, 0, messageByte.Length);

                // Close the stream.
                fWrite.Close();

                
                // Open a file and read the number of bytes.

                FileStream fRead = new FileStream("test.txt", FileMode.Open);

                // The first byte is the string length.
                int length = (int)fRead.ReadByte();

                // Create a new byte array for the data.
                byte[] readBytes = new byte[length];

                // Read the data from the file.
                fRead.Read(readBytes, 0, readBytes.Length);

                // Close the stream.
                fRead.Close();

                // Display the data.
                Console.WriteLine(Encoding.ASCII.GetString(readBytes));

                Console.WriteLine("Done writing and reading data.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            Console.ReadLine();
        }
    }
}

Imports System.IO
Imports System.Text
Imports System.Security.AccessControl



Module FileStreamExample

    Sub Main()
        Try
            ' Create a file and write data to it.
            ' Create an array of bytes.
            Dim messageByte As Byte() = Encoding.ASCII.GetBytes("Here is some data.")

            ' Specify an access control list (ACL)
            Dim fs As New FileSecurity()

            fs.AddAccessRule(New FileSystemAccessRule("DOMAINNAME\AccountName", FileSystemRights.ReadData, AccessControlType.Allow))

            ' Create a file using the FileStream class.
            Dim fWrite As New FileStream("test.txt", FileMode.Create, FileSystemRights.Modify, FileShare.None, 8, FileOptions.None, fs)

            ' Write the number of bytes to the file.
            fWrite.WriteByte(System.Convert.ToByte(messageByte.Length))

            ' Write the bytes to the file.
            fWrite.Write(messageByte, 0, messageByte.Length)

            ' Close the stream.
            fWrite.Close()


            ' Open a file and read the number of bytes.
            Dim fRead As New FileStream("test.txt", FileMode.Open)

            ' The first byte is the string length.
            Dim length As Integer = Fix(fRead.ReadByte())

            ' Create a new byte array for the data.
            Dim readBytes(length) As Byte

            ' Read the data from the file.
            fRead.Read(readBytes, 0, readBytes.Length)

            ' Close the stream.
            fRead.Close()

            ' Display the data.
            Console.WriteLine(Encoding.ASCII.GetString(readBytes))

            Console.WriteLine("Done writing and reading data.")
        Catch e As Exception
            Console.WriteLine(e)
        End Try

        Console.ReadLine()

    End Sub
End Module

Commenti

Il .NET Framework non supporta l'accesso diretto ai dischi fisici tramite percorsi che sono nomi di dispositivo, ad esempio "\\.\PHYSICALDRIVE0".The .NET Framework does not support direct access to physical disks through paths that are device names, such as "\\.\PHYSICALDRIVE0 ".

Utilizzare questo costruttore FileStream per applicare i diritti di accesso al momento della creazione di un file.Use this FileStream constructor to apply access rights at the point of creation of a file. Per accedere o modificare i diritti per un file esistente, provare a usare i metodi GetAccessControl e SetAccessControl.To access or modify rights on an existing file, consider using the GetAccessControl and SetAccessControl methods.

Il parametro fileOptions viene usato per fornire l'accesso a operazioni più avanzate che possono essere sfruttate durante la creazione di un oggetto FileStream.The fileOptions parameter is used to provide access to more advanced operations that can be leveraged when creating a FileStream object.

Il path parametro può essere un nome di file, incluso un file in una condivisione Universal Naming Convention (UNC).The path parameter can be a file name, including a file on a Universal Naming Convention (UNC) share.

Nota

non è necessario che path sia un file archiviato su disco; può trattarsi di qualsiasi parte di un sistema che supporta l'accesso tramite flussi.path is not required to be a file stored on disk; it can be any part of a system that supports access through streams. Ad esempio, a seconda del sistema, questa classe può accedere a un dispositivo fisico.For example, depending on the system, this class can access a physical device.

CanSeek è true per tutti gli oggetti FileStream che incapsulano i file.CanSeek is true for all FileStream objects that encapsulate files. Se path indica un dispositivo che non supporta la ricerca, la proprietà CanSeek sul FileStream risultante viene false.If path indicates a device that does not support seeking, the CanSeek property on the resulting FileStream is false. Per altre informazioni, vedere CanSeek.For additional information, see CanSeek.

Attenzione

Quando si compila un set di caratteri con una particolare impostazione culturale e si recuperano gli stessi caratteri con un'impostazione culturale diversa, i caratteri potrebbero non essere interpretabili e potrebbe causare la generazione di un'eccezione.When you compile a set of characters with a particular cultural setting and retrieve those same characters with a different cultural setting, the characters might not be interpretable, and could cause an exception to be thrown.

Per un elenco delle operazioni comuni di file e directory, vedere attività di I/O comuni.For a list of common file and directory operations, see Common I/O Tasks.

Sicurezza

FileIOPermission
per la lettura, la scrittura e l'accodamento ai file.for reading, writing, and appending to files. Enumerazioni associate: Read, Writee Append.Associated enumerations: Read, Write, and Append.

Vedi anche

FileStream(String, FileMode, FileSystemRights, FileShare, Int32, FileOptions)

Inizializza una nuova istanza della classe FileStream con il percorso, la modalità di creazione, i diritti di accesso e l'autorizzazione di condivisione, la dimensione del buffer e le opzioni aggiuntive del file specificati.Initializes a new instance of the FileStream class with the specified path, creation mode, access rights and sharing permission, the buffer size, and additional file options.

public:
 FileStream(System::String ^ path, System::IO::FileMode mode, System::Security::AccessControl::FileSystemRights rights, System::IO::FileShare share, int bufferSize, System::IO::FileOptions options);
public FileStream (string path, System.IO.FileMode mode, System.Security.AccessControl.FileSystemRights rights, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options);
new System.IO.FileStream : string * System.IO.FileMode * System.Security.AccessControl.FileSystemRights * System.IO.FileShare * int * System.IO.FileOptions -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, rights As FileSystemRights, share As FileShare, bufferSize As Integer, options As FileOptions)

Parametri

path
String

Percorso relativo o assoluto per il file che sarà incapsulato dall'oggetto FileStream corrente.A relative or absolute path for the file that the current FileStream object will encapsulate.

mode
FileMode

Uno dei valori di enumerazione che determina come aprire o creare il file.One of the enumeration values that determines how to open or create the file.

rights
FileSystemRights

Combinazione bit per bit dei valori di enumerazione che determina i diritti di accesso da usare quando si creano regole di accesso e di controllo per il file.A bitwise combination of the enumeration values that determines the access rights to use when creating access and audit rules for the file.

share
FileShare

Combinazione bit per bit dei valori di enumerazione che determina come il file verrà condiviso dai processi.A bitwise combination of the enumeration values that determines how the file will be shared by processes.

bufferSize
Int32

Valore positivo Int32 maggiore di 0 che indica la dimensione del buffer.A positive Int32 value greater than 0 indicating the buffer size. La dimensione del buffer predefinita è 4096.The default buffer size is 4096.

options
FileOptions

Combinazione bit per bit dei valori di enumerazione che specifica le opzioni dei file aggiuntive.A bitwise combination of the enumeration values that specifies additional file options.

Eccezioni

path è null.path is null.

path è una stringa vuota (""), contiene solo spazi vuoti oppure contiene uno o più caratteri non validi.path is an empty string (""), contains only white space, or contains one or more invalid characters.

-oppure--or- path fa riferimento a dispositivi non basati su file come "con:", "com1:", "lpt1:" e così via in un ambiente NTFS.path refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.

path fa riferimento a dispositivi non basati su file come "con:", "com1:", "lpt1:" e così via in un ambiente non NTFS.path refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.

bufferSize è un valore negativo o zero.bufferSize is negative or zero.

-oppure--or- mode, access o share contiene un valore non valido.mode, access, or share contain an invalid value.

Il file non è stato trovato, ad esempio se mode è FileMode.Truncate o FileMode.Open e il file specificato da path non esiste.The file cannot be found, such as when mode is FileMode.Truncate or FileMode.Open, and the file specified by path does not exist. È necessario che il file sia già disponibile in queste modalità.The file must already exist in these modes.

Il sistema operativo corrente non è Windows NT o versioni successive.The current operating system is not Windows NT or later.

Si è verificato un errore di I/O, ad esempio quando si specifica FileMode.CreateNew e il file specificato da path è già presente.An I/O error, such as specifying FileMode.CreateNew when the file specified by path already exists, occurred.

-oppure--or- Il flusso è stato chiuso.The stream has been closed.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

Il percorso specificato non è valido, ad esempio si trova in un'unità non mappata.The specified path is invalid, such as being on an unmapped drive.

L'oggetto access richiesto non è consentito dal sistema operativo per l'oggetto path specificato, ad esempio quando access è Write o ReadWrite e la directory o il file è impostato per l'accesso in sola lettura.The access requested is not permitted by the operating system for the specified path, such as when access is Write or ReadWrite and the file or directory is set for read-only access.

-oppure--or- Encrypted è specificato per options, ma la crittografia del file non è supportata sulla piattaforma corrente.Encrypted is specified for options, but file encryption is not supported on the current platform.

L'oggetto path specificato, il nome file o entrambi superano la lunghezza massima definita dal sistema.The specified path, file name, or both exceed the system-defined maximum length.

Commenti

Il .NET Framework non supporta l'accesso diretto ai dischi fisici tramite percorsi che sono nomi di dispositivo, ad esempio "\\.\PHYSICALDRIVE0".The .NET Framework does not support direct access to physical disks through paths that are device names, such as "\\.\PHYSICALDRIVE0 ".

Utilizzare questo costruttore FileStream per applicare i diritti di accesso al momento della creazione di un file.Use this FileStream constructor to apply access rights at the point of creation of a file. Per accedere o modificare i diritti per un file esistente, provare a usare i metodi GetAccessControl e SetAccessControl.To access or modify rights on an existing file, consider using the GetAccessControl and SetAccessControl methods.

Il parametro fileOptions viene usato per fornire l'accesso a operazioni più avanzate che possono essere sfruttate durante la creazione di un oggetto FileStream.The fileOptions parameter is used to provide access to more advanced operations that can be leveraged when creating a FileStream object.

Il path parametro può essere un nome di file, incluso un file in una condivisione Universal Naming Convention (UNC).The path parameter can be a file name, including a file on a Universal Naming Convention (UNC) share.

Nota

non è necessario che path sia un file archiviato su disco; può trattarsi di qualsiasi parte di un sistema che supporta l'accesso tramite flussi.path is not required to be a file stored on disk; it can be any part of a system that supports access through streams. Ad esempio, a seconda del sistema, questa classe può accedere a un dispositivo fisico.For example, depending on the system, this class can access a physical device.

CanSeek è true per tutti gli oggetti FileStream che incapsulano i file.CanSeek is true for all FileStream objects that encapsulate files. Se path indica un dispositivo che non supporta la ricerca, la proprietà CanSeek sul FileStream risultante viene false.If path indicates a device that does not support seeking, the CanSeek property on the resulting FileStream is false. Per altre informazioni, vedere CanSeek.For additional information, see CanSeek.

Attenzione

Quando si compila un set di caratteri con una particolare impostazione culturale e si recuperano gli stessi caratteri con un'impostazione culturale diversa, i caratteri potrebbero non essere interpretabili e potrebbe causare la generazione di un'eccezione.When you compile a set of characters with a particular cultural setting and retrieve those same characters with a different cultural setting, the characters might not be interpretable, and could cause an exception to be thrown.

Per un elenco delle operazioni comuni di file e directory, vedere attività di I/O comuni.For a list of common file and directory operations, see Common I/O Tasks.

Sicurezza

FileIOPermission
per la lettura, la scrittura e l'accodamento ai file.for reading, writing, and appending to files. Enumerazioni associate: Read, Writee Append.Associated enumerations: Read, Write, and Append.

Vedi anche

FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean)

Inizializza una nuova istanza della classe FileStream con il percorso, la modalità di creazione, l'autorizzazione di lettura/scrittura e condivisione, la dimensione del buffer e lo stato sincrono o asincrono specificati.Initializes a new instance of the FileStream class with the specified path, creation mode, read/write and sharing permission, buffer size, and synchronous or asynchronous state.

public:
 FileStream(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access, System::IO::FileShare share, int bufferSize, bool useAsync);
public FileStream (string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, bool useAsync);
new System.IO.FileStream : string * System.IO.FileMode * System.IO.FileAccess * System.IO.FileShare * int * bool -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, access As FileAccess, share As FileShare, bufferSize As Integer, useAsync As Boolean)

Parametri

path
String

Percorso relativo o assoluto per il file che sarà incapsulato dall'oggetto FileStream corrente.A relative or absolute path for the file that the current FileStream object will encapsulate.

mode
FileMode

Uno dei valori di enumerazione che determina come aprire o creare il file.One of the enumeration values that determines how to open or create the file.

access
FileAccess

Combinazione bit per bit dei valori di enumerazione che determina la modalità di accesso al file dall'oggetto FileStream.A bitwise combination of the enumeration values that determines how the file can be accessed by the FileStream object. Determina anche i valori restituiti dalle proprietà CanRead e CanWrite dell'oggetto FileStream.This also determines the values returned by the CanRead and CanWrite properties of the FileStream object. CanSeek è true se path specifica un file su disco.CanSeek is true if path specifies a disk file.

share
FileShare

Combinazione bit per bit dei valori di enumerazione che determina come il file verrà condiviso dai processi.A bitwise combination of the enumeration values that determines how the file will be shared by processes.

bufferSize
Int32

Valore positivo Int32 maggiore di 0 che indica la dimensione del buffer.A positive Int32 value greater than 0 indicating the buffer size. La dimensione del buffer predefinita è 4096.The default buffer size is 4096.

useAsync
Boolean

Specifica se usare I/O asincroni o sincroni.Specifies whether to use asynchronous I/O or synchronous I/O. Tenere presente, tuttavia, che il sistema operativo usato potrebbe non supportare le operazioni di I/O asincrone. Quindi, se si specifica true, l'handle potrebbe essere aperto in modalità sincrona a seconda della piattaforma usata.However, note that the underlying operating system might not support asynchronous I/O, so when specifying true, the handle might be opened synchronously depending on the platform. Quando vengono aperti in modalità asincrona, i metodi BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) e BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) offrono prestazioni migliori nelle operazioni di lettura o scrittura su dati di grandi dimensioni, ma potrebbero offrire prestazioni inferiori nelle operazioni di lettura o scrittura su dati di piccole dimensioni.When opened asynchronously, the BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) and BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) methods perform better on large reads or writes, but they might be much slower for small reads or writes. Se l'applicazione è stata progettata per sfruttare le operazioni di I/O asincrone, impostare il parametro useAsync su true.If the application is designed to take advantage of asynchronous I/O, set the useAsync parameter to true. Se le operazioni di I/O asincrone vengono usate in modo corretto è possibile ottenere un incremento delle prestazioni delle applicazioni fino a 10 volte, ma se vengono usate senza riprogettare l'applicazione per le operazioni di I/O asincrone le prestazioni possono ridursi fino a 10 volte.Using asynchronous I/O correctly can speed up applications by as much as a factor of 10, but using it without redesigning the application for asynchronous I/O can decrease performance by as much as a factor of 10.

Eccezioni

path è null.path is null.

path è una stringa vuota (""), contiene solo spazi vuoti oppure contiene uno o più caratteri non validi.path is an empty string (""), contains only white space, or contains one or more invalid characters.

-oppure--or- path fa riferimento a dispositivi non basati su file come "con:", "com1:", "lpt1:" e così via in un ambiente NTFS.path refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.

path fa riferimento a dispositivi non basati su file come "con:", "com1:", "lpt1:" e così via in un ambiente non NTFS.path refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.

bufferSize è un valore negativo o zero.bufferSize is negative or zero.

-oppure--or- mode, access o share contiene un valore non valido.mode, access, or share contain an invalid value.

Il file non è stato trovato, ad esempio se mode è FileMode.Truncate o FileMode.Open e il file specificato da path non esiste.The file cannot be found, such as when mode is FileMode.Truncate or FileMode.Open, and the file specified by path does not exist. È necessario che il file sia già disponibile in queste modalità.The file must already exist in these modes.

Si è verificato un errore di I/O, ad esempio quando si specifica FileMode.CreateNew e il file specificato da path è già presente.An I/O error, such as specifying FileMode.CreateNew when the file specified by path already exists, occurred.

-oppure--or- Il sistema esegue Windows 98 o Windows 98 Second Edition e share è impostato su FileShare.Delete.The system is running Windows 98 or Windows 98 Second Edition and share is set to FileShare.Delete.

-oppure--or- Il flusso è stato chiuso.The stream has been closed.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

Il percorso specificato non è valido, ad esempio si trova in un'unità non mappata.The specified path is invalid, such as being on an unmapped drive.

L'oggetto access richiesto non è consentito dal sistema operativo per l'oggetto path specificato, ad esempio quando access è Write o ReadWrite e la directory o il file è impostato per l'accesso in sola lettura.The access requested is not permitted by the operating system for the specified path, such as when access is Write or ReadWrite and the file or directory is set for read-only access.

Il percorso specificato, il nome file o entrambi superano la lunghezza massima definita dal sistema.The specified path, file name, or both exceed the system-defined maximum length.

Esempi

Nell'esempio di codice seguente viene illustrato come scrivere dati in modo asincrono in un file e quindi verificare che i dati siano stati scritti correttamente.The following code example shows how to asynchronously write data to a file and then verify that the data was written correctly. Viene creato un oggetto State per passare informazioni dal thread principale ai metodi EndReadCallback e EndWriteCallback.A State object is created to pass information from the main thread to the EndReadCallback and EndWriteCallback methods.

using namespace System;
using namespace System::IO;
using namespace System::Threading;

// Maintain state information to be passed to 
// EndWriteCallback and EndReadCallback.
ref class State
{
private:

   // fStream is used to read and write to the file.
   FileStream^ fStream;

   // writeArray stores data that is written to the file.
   array<Byte>^writeArray;

   // readArray stores data that is read from the file.
   array<Byte>^readArray;

   // manualEvent signals the main thread 
   // when verification is complete.
   ManualResetEvent^ manualEvent;

public:
   State( FileStream^ fStream, array<Byte>^writeArray, ManualResetEvent^ manualEvent )
   {
      this->fStream = fStream;
      this->writeArray = writeArray;
      this->manualEvent = manualEvent;
      readArray = gcnew array<Byte>(writeArray->Length);
   }


   property FileStream^ FStream 
   {
      FileStream^ get()
      {
         return fStream;
      }

   }

   property array<Byte>^ WriteArray 
   {
      array<Byte>^ get()
      {
         return writeArray;
      }

   }

   property array<Byte>^ ReadArray 
   {
      array<Byte>^ get()
      {
         return readArray;
      }

   }

   property ManualResetEvent^ ManualEvent 
   {
      ManualResetEvent^ get()
      {
         return manualEvent;
      }

   }

};

ref class FStream
{
private:

   // When BeginRead is finished reading data from the file, the 
   // EndReadCallback method is called to end the asynchronous 
   // read operation and then verify the data.
   static void EndReadCallback( IAsyncResult^ asyncResult )
   {
      State^ tempState = dynamic_cast<State^>(asyncResult->AsyncState);
      int readCount = tempState->FStream->EndRead( asyncResult );
      int i = 0;
      while ( i < readCount )
      {
         if ( tempState->ReadArray[ i ] != tempState->WriteArray[ i++ ] )
         {
            Console::WriteLine( "Error writing data." );
            tempState->FStream->Close();
            return;
         }
      }

      Console::WriteLine( "The data was written to {0} "
      "and verified.", tempState->FStream->Name );
      tempState->FStream->Close();
      
      // Signal the main thread that the verification is finished.
      tempState->ManualEvent->Set();
   }


public:

   // When BeginWrite is finished writing data to the file, the
   // EndWriteCallback method is called to end the asynchronous 
   // write operation and then read back and verify the data.
   static void EndWriteCallback( IAsyncResult^ asyncResult )
   {
      State^ tempState = dynamic_cast<State^>(asyncResult->AsyncState);
      FileStream^ fStream = tempState->FStream;
      fStream->EndWrite( asyncResult );
      
      // Asynchronously read back the written data.
      fStream->Position = 0;
      asyncResult = fStream->BeginRead( tempState->ReadArray, 0, tempState->ReadArray->Length, gcnew AsyncCallback( &FStream::EndReadCallback ), tempState );
      
      // Concurrently do other work, such as 
      // logging the write operation.
   }

};


int main()
{
   
   // Create a synchronization object that gets 
   // signaled when verification is complete.
   ManualResetEvent^ manualEvent = gcnew ManualResetEvent( false );
   
   // Create the data to write to the file.
   array<Byte>^writeArray = gcnew array<Byte>(100000);
   (gcnew Random)->NextBytes( writeArray );
   FileStream^ fStream = gcnew FileStream(  "Test#@@#.dat",FileMode::Create,FileAccess::ReadWrite,FileShare::None,4096,true );
   
   // Check that the FileStream was opened asynchronously.
   Console::WriteLine( "fStream was {0}opened asynchronously.", fStream->IsAsync ? (String^)"" : "not " );
   
   // Asynchronously write to the file.
   IAsyncResult^ asyncResult = fStream->BeginWrite( writeArray, 0, writeArray->Length, gcnew AsyncCallback( &FStream::EndWriteCallback ), gcnew State( fStream,writeArray,manualEvent ) );
   
   // Concurrently do other work and then wait 
   // for the data to be written and verified.
   manualEvent->WaitOne( 5000, false );
}

using System;
using System.IO;
using System.Threading;

class FStream
{
    static void Main()
    {
        // Create a synchronization object that gets 
        // signaled when verification is complete.
        ManualResetEvent manualEvent = new ManualResetEvent(false);

        // Create random data to write to the file.
        byte[] writeArray = new byte[100000];
        new Random().NextBytes(writeArray);

        FileStream fStream = 
            new FileStream("Test#@@#.dat", FileMode.Create, 
            FileAccess.ReadWrite, FileShare.None, 4096, true);

        // Check that the FileStream was opened asynchronously.
        Console.WriteLine("fStream was {0}opened asynchronously.",
            fStream.IsAsync ? "" : "not ");

        // Asynchronously write to the file.
        IAsyncResult asyncResult = fStream.BeginWrite(
            writeArray, 0, writeArray.Length, 
            new AsyncCallback(EndWriteCallback), 
            new State(fStream, writeArray, manualEvent));

        // Concurrently do other work and then wait 
        // for the data to be written and verified.
        manualEvent.WaitOne(5000, false);
    }

    // When BeginWrite is finished writing data to the file, the
    // EndWriteCallback method is called to end the asynchronous 
    // write operation and then read back and verify the data.
    static void EndWriteCallback(IAsyncResult asyncResult)
    {
        State tempState = (State)asyncResult.AsyncState;
        FileStream fStream = tempState.FStream;
        fStream.EndWrite(asyncResult);

        // Asynchronously read back the written data.
        fStream.Position = 0;
        asyncResult = fStream.BeginRead(
            tempState.ReadArray, 0 , tempState.ReadArray.Length, 
            new AsyncCallback(EndReadCallback), tempState);

        // Concurrently do other work, such as 
        // logging the write operation.
    }

    // When BeginRead is finished reading data from the file, the 
    // EndReadCallback method is called to end the asynchronous 
    // read operation and then verify the data.
    static void EndReadCallback(IAsyncResult asyncResult)
    {
        State tempState = (State)asyncResult.AsyncState;
        int readCount = tempState.FStream.EndRead(asyncResult);

        int i = 0;
        while(i < readCount)
        {
            if(tempState.ReadArray[i] != tempState.WriteArray[i++])
            {
                Console.WriteLine("Error writing data.");
                tempState.FStream.Close();
                return;
            }
        }
        Console.WriteLine("The data was written to {0} and verified.",
            tempState.FStream.Name);
        tempState.FStream.Close();

        // Signal the main thread that the verification is finished.
        tempState.ManualEvent.Set();
    }

    // Maintain state information to be passed to 
    // EndWriteCallback and EndReadCallback.
    class State
    {
        // fStream is used to read and write to the file.
        FileStream fStream;

        // writeArray stores data that is written to the file.
        byte[] writeArray;

        // readArray stores data that is read from the file.
        byte[] readArray;

        // manualEvent signals the main thread 
        // when verification is complete.
        ManualResetEvent manualEvent;

        public State(FileStream fStream, byte[] writeArray, 
            ManualResetEvent manualEvent)
        {
            this.fStream   = fStream;
            this.writeArray = writeArray;
            this.manualEvent = manualEvent;
            readArray = new byte[writeArray.Length];
        }

        public FileStream FStream
        { get{ return fStream; } }

        public byte[] WriteArray
        { get{ return writeArray; } }

        public byte[] ReadArray
        { get{ return readArray; } }

        public ManualResetEvent ManualEvent
        { get{ return manualEvent; } }
    }
}
Imports System.IO
Imports System.Threading

Class FStream

    Shared Sub Main()

        ' Create a synchronization object that gets 
        ' signaled when verification is complete.
        Dim manualEvent As New ManualResetEvent(False)

        ' Create random data to write to the file.
        Dim writeArray(100000) As Byte
        Dim randomGenerator As New Random()
        randomGenerator.NextBytes(writeArray)

        Dim fStream As New FileStream("Test#@@#.dat", _
            FileMode.Create, FileAccess.ReadWrite, _
            FileShare.None, 4096, True)

        ' Check that the FileStream was opened asynchronously.
        If fStream.IsAsync = True
            Console.WriteLine("fStream was opened asynchronously.")
        Else
            Console.WriteLine("fStream was not opened asynchronously.")
        End If

        ' Asynchronously write to the file.
        Dim asyncResult As IAsyncResult = fStream.BeginWrite( _
            writeArray, 0, writeArray.Length, _
            AddressOf EndWriteCallback , _
            New State(fStream, writeArray, manualEvent))

        ' Concurrently do other work and then wait
        ' for the data to be written and verified.
        manualEvent.WaitOne(5000, False)
    End Sub

    ' When BeginWrite is finished writing data to the file, the
    ' EndWriteCallback method is called to end the asynchronous 
    ' write operation and then read back and verify the data.
    Private Shared Sub EndWriteCallback(asyncResult As IAsyncResult)
        Dim tempState As State = _
            DirectCast(asyncResult.AsyncState, State)
        Dim fStream As FileStream = tempState.FStream
        fStream.EndWrite(asyncResult)

        ' Asynchronously read back the written data.
        fStream.Position = 0
        asyncResult = fStream.BeginRead( _ 
            tempState.ReadArray, 0 , tempState.ReadArray.Length, _
            AddressOf EndReadCallback, tempState)

        ' Concurrently do other work, such as 
        ' logging the write operation.
    End Sub

    ' When BeginRead is finished reading data from the file, the 
    ' EndReadCallback method is called to end the asynchronous 
    ' read operation and then verify the data.
   Private Shared Sub EndReadCallback(asyncResult As IAsyncResult)
        Dim tempState As State = _
            DirectCast(asyncResult.AsyncState, State)
        Dim readCount As Integer = _
            tempState.FStream.EndRead(asyncResult)

        Dim i As Integer = 0
        While(i < readCount)
            If(tempState.ReadArray(i) <> tempState.WriteArray(i))
                Console.WriteLine("Error writing data.")
                tempState.FStream.Close()
                Return
            End If
            i += 1
        End While

        Console.WriteLine("The data was written to {0} and " & _
            "verified.", tempState.FStream.Name)
        tempState.FStream.Close()

        ' Signal the main thread that the verification is finished.
        tempState.ManualEvent.Set()
    End Sub

    ' Maintain state information to be passed to 
    ' EndWriteCallback and EndReadCallback.
    Private Class State

        ' fStreamValue is used to read and write to the file.
        Dim fStreamValue As FileStream

        ' writeArrayValue stores data that is written to the file.
        Dim writeArrayValue As Byte()

        ' readArrayValue stores data that is read from the file.
        Dim readArrayValue As Byte()

        ' manualEvent signals the main thread 
        ' when verification is complete.
        Dim manualEventValue As ManualResetEvent 

        Sub New(aStream As FileStream, anArray As Byte(), _
            manualEvent As ManualResetEvent)

            fStreamValue     = aStream
            writeArrayValue  = anArray
            manualEventValue = manualEvent
            readArrayValue   = New Byte(anArray.Length - 1){}
        End Sub    

            Public ReadOnly Property FStream() As FileStream
                Get
                    Return fStreamValue
                End Get
            End Property

            Public ReadOnly Property WriteArray() As Byte()
                Get
                    Return writeArrayValue
                End Get
            End Property

            Public ReadOnly Property ReadArray() As Byte()
                Get
                    Return readArrayValue
                End Get
            End Property

            Public ReadOnly Property ManualEvent() As ManualResetEvent
                Get
                    Return manualEventValue
                End Get
            End Property
    End Class 
   
End Class

Commenti

Il .NET Framework non supporta l'accesso diretto ai dischi fisici tramite percorsi che sono nomi di dispositivo, ad esempio "\\.\PHYSICALDRIVE0".The .NET Framework does not support direct access to physical disks through paths that are device names, such as "\\.\PHYSICALDRIVE0 ".

Il path parametro può essere un nome di file, incluso un file in una condivisione Universal Naming Convention (UNC).The path parameter can be a file name, including a file on a Universal Naming Convention (UNC) share.

Nota

non è necessario che path sia un file archiviato su disco; può trattarsi di qualsiasi parte di un sistema che supporta l'accesso tramite flussi.path is not required to be a file stored on disk; it can be any part of a system that supports access through streams. Ad esempio, a seconda del sistema, questa classe può accedere a un dispositivo fisico.For example, depending on the system, this class can access a physical device.

CanSeek è true per tutti gli oggetti FileStream che incapsulano i file.CanSeek is true for all FileStream objects that encapsulate files. Se path indica un dispositivo che non supporta la ricerca, la proprietà CanSeek sul FileStream risultante viene false.If path indicates a device that does not support seeking, the CanSeek property on the resulting FileStream is false. Per altre informazioni, vedere CanSeek.For additional information, see CanSeek.

Attenzione

Quando si compila un set di caratteri con una particolare impostazione culturale e si recuperano gli stessi caratteri con un'impostazione culturale diversa, i caratteri potrebbero non essere interpretabili e potrebbe causare la generazione di un'eccezione.When you compile a set of characters with a particular cultural setting and retrieve those same characters with a different cultural setting, the characters might not be interpretable, and could cause an exception to be thrown.

Per un elenco delle operazioni comuni di file e directory, vedere attività di I/O comuni.For a list of common file and directory operations, see Common I/O Tasks.

Sicurezza

FileIOPermission
per la lettura, la scrittura e l'accodamento ai file.for reading, writing, and appending to files. Enumerazioni associate: Read, Writee Append.Associated enumerations: Read, Write, and Append.

Vedi anche

FileStream(String, FileMode, FileAccess, FileShare, Int32)

Inizializza una nuova istanza della classe FileStream con il percorso, la modalità di creazione, l'autorizzazione di lettura/scrittura e condivisione e la dimensione del buffer specificati.Initializes a new instance of the FileStream class with the specified path, creation mode, read/write and sharing permission, and buffer size.

public:
 FileStream(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access, System::IO::FileShare share, int bufferSize);
public FileStream (string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize);
new System.IO.FileStream : string * System.IO.FileMode * System.IO.FileAccess * System.IO.FileShare * int -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, access As FileAccess, share As FileShare, bufferSize As Integer)

Parametri

path
String

Percorso relativo o assoluto per il file che sarà incapsulato dall'oggetto FileStream corrente.A relative or absolute path for the file that the current FileStream object will encapsulate.

mode
FileMode

Uno dei valori di enumerazione che determina come aprire o creare il file.One of the enumeration values that determines how to open or create the file.

access
FileAccess

Combinazione bit per bit dei valori di enumerazione, che determina la modalità di accesso al file dall'oggetto FileStream.A bitwise combination of the enumeration values that determines how the file can be accessed by the FileStream object. Determina anche i valori restituiti dalle proprietà CanRead e CanWrite dell'oggetto FileStream.This also determines the values returned by the CanRead and CanWrite properties of the FileStream object. CanSeek è true se path specifica un file su disco.CanSeek is true if path specifies a disk file.

share
FileShare

Combinazione bit per bit dei valori di enumerazione, che determina come il file verrà condiviso dai processi.A bitwise combination of the enumeration values that determines how the file will be shared by processes.

bufferSize
Int32

Valore positivo Int32 maggiore di 0 che indica la dimensione del buffer.A positive Int32 value greater than 0 indicating the buffer size. La dimensione del buffer predefinita è 4096.The default buffer size is 4096.

Eccezioni

path è null.path is null.

path è una stringa vuota (""), contiene solo spazi vuoti oppure contiene uno o più caratteri non validi.path is an empty string (""), contains only white space, or contains one or more invalid characters.

-oppure--or- path fa riferimento a dispositivi non basati su file come "con:", "com1:", "lpt1:" e così via in un ambiente NTFS.path refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.

path fa riferimento a dispositivi non basati su file come "con:", "com1:", "lpt1:" e così via in un ambiente non NTFS.path refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.

bufferSize è un valore negativo o zero.bufferSize is negative or zero.

-oppure--or- mode, access o share contiene un valore non valido.mode, access, or share contain an invalid value.

Il file non è stato trovato, ad esempio se mode è FileMode.Truncate o FileMode.Open e il file specificato da path non esiste.The file cannot be found, such as when mode is FileMode.Truncate or FileMode.Open, and the file specified by path does not exist. È necessario che il file sia già disponibile in queste modalità.The file must already exist in these modes.

Si è verificato un errore di I/O, ad esempio quando si specifica FileMode.CreateNew e il file specificato da path è già presente.An I/O error, such as specifying FileMode.CreateNew when the file specified by path already exists, occurred.

-oppure--or- Il sistema esegue Windows 98 o Windows 98 Second Edition e share è impostato su FileShare.Delete.The system is running Windows 98 or Windows 98 Second Edition and share is set to FileShare.Delete.

-oppure--or- Il flusso è stato chiuso.The stream has been closed.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

Il percorso specificato non è valido, ad esempio si trova in un'unità non mappata.The specified path is invalid, such as being on an unmapped drive.

L'oggetto access richiesto non è consentito dal sistema operativo per l'oggetto path specificato, ad esempio quando access è Write o ReadWrite e la directory o il file è impostato per l'accesso in sola lettura.The access requested is not permitted by the operating system for the specified path, such as when access is Write or ReadWrite and the file or directory is set for read-only access.

Il percorso specificato, il nome file o entrambi superano la lunghezza massima definita dal sistema.The specified path, file name, or both exceed the system-defined maximum length.

Commenti

Il .NET Framework non supporta l'accesso diretto ai dischi fisici tramite percorsi che sono nomi di dispositivo, ad esempio "\\.\PHYSICALDRIVE0".The .NET Framework does not support direct access to physical disks through paths that are device names, such as "\\.\PHYSICALDRIVE0 ".

Il path parametro può essere un nome di file, incluso un file in una condivisione Universal Naming Convention (UNC).The path parameter can be a file name, including a file on a Universal Naming Convention (UNC) share.

Nota

non è necessario che path sia un file archiviato su disco; può trattarsi di qualsiasi parte di un sistema che supporta l'accesso tramite flussi.path is not required to be a file stored on disk; it can be any part of a system that supports access through streams. Ad esempio, a seconda del sistema, questa classe può accedere a un dispositivo fisico.For example, depending on the system, this class can access a physical device.

CanSeek è true per tutti gli oggetti FileStream che incapsulano i file.CanSeek is true for all FileStream objects that encapsulate files. Se path indica un dispositivo che non supporta la ricerca, la proprietà CanSeek sul FileStream risultante viene false.If path indicates a device that does not support seeking, the CanSeek property on the resulting FileStream is false. Per altre informazioni, vedere CanSeek.For additional information, see CanSeek.

Attenzione

Quando si compila un set di caratteri con una particolare impostazione culturale e si recuperano gli stessi caratteri con un'impostazione culturale diversa, i caratteri potrebbero non essere interpretabili e potrebbe causare la generazione di un'eccezione.When you compile a set of characters with a particular cultural setting and retrieve those same characters with a different cultural setting, the characters might not be interpretable, and could cause an exception to be thrown.

Per un elenco delle operazioni comuni di file e directory, vedere attività di I/O comuni.For a list of common file and directory operations, see Common I/O Tasks.

Sicurezza

FileIOPermission
per la lettura, la scrittura e l'accodamento ai file.for reading, writing, and appending to files. Enumerazioni associate: Read, Writee Append.Associated enumerations: Read, Write, and Append.

Vedi anche

FileStream(IntPtr, FileAccess, Boolean, Int32, Boolean)

Avviso

Questa API è ora obsoleta.

Inizializza una nuova istanza della classe FileStream per l'handle di file specificato, con l'autorizzazione di lettura/scrittura, la proprietà dell'istanza di FileStream, la dimensione del buffer e lo stato sincrono o asincrono specificati.Initializes a new instance of the FileStream class for the specified file handle, with the specified read/write permission, FileStream instance ownership, buffer size, and synchronous or asynchronous state.

public:
 FileStream(IntPtr handle, System::IO::FileAccess access, bool ownsHandle, int bufferSize, bool isAsync);
[System.Obsolete("Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) instead")]
[System.Obsolete("This constructor has been deprecated.  Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed.  https://go.microsoft.com/fwlink/?linkid=14202")]
[System.Obsolete("This constructor has been deprecated.  Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize, bool isAsync) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed.  https://go.microsoft.com/fwlink/?linkid=14202")]
public FileStream (IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize, bool isAsync);
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int * bool -> System.IO.FileStream
Public Sub New (handle As IntPtr, access As FileAccess, ownsHandle As Boolean, bufferSize As Integer, isAsync As Boolean)

Parametri

handle
IntPtr

Handle di file relativo al file che sarà incapsulato nell'oggetto FileStream.A file handle for the file that this FileStream object will encapsulate.

access
FileAccess

Combinazione bit per bit dei valori di enumerazione, che imposta le proprietà CanRead e CanWrite dell'oggetto FileStream.A bitwise combination of the enumeration values that sets the CanRead and CanWrite properties of the FileStream object.

ownsHandle
Boolean

true se l'handle del file è di proprietà dell'istanza di FileStream; in caso contrario, false.true if the file handle will be owned by this FileStream instance; otherwise, false.

bufferSize
Int32

Valore positivo Int32 maggiore di 0 che indica la dimensione del buffer.A positive Int32 value greater than 0 indicating the buffer size. La dimensione del buffer predefinita è 4096.The default buffer size is 4096.

isAsync
Boolean

true se l'handle è stato aperto in modalità asincrona, ovvero in modalità I/O sovrapposta; in caso contrario, false.true if the handle was opened asynchronously (that is, in overlapped I/O mode); otherwise, false.

Attributi

Eccezioni

access è minore di FileAccess.Read o maggiore di FileAccess.ReadWrite oppure bufferSize è minore o uguale a 0.access is less than FileAccess.Read or greater than FileAccess.ReadWrite or bufferSize is less than or equal to 0.

Handle non valido.The handle is invalid.

Si è verificato un errore di I/O, ad esempio un errore del disco.An I/O error, such as a disk error, occurred.

-oppure--or-

Il flusso è stato chiuso.The stream has been closed.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

L'oggetto access richiesto non è consentito dal sistema operativo per l'handle di file specificato, ad esempio quando access è Write o ReadWrite e l'handle di file è impostato per l'accesso in sola lettura.The access requested is not permitted by the operating system for the specified file handle, such as when access is Write or ReadWrite and the file handle is set for read-only access.

Commenti

All'oggetto FileStream viene assegnato l'accesso specificato al file.The FileStream object is given the specified access to the file. La proprietà dell'handle sarà specificata.The ownership of the handle will be as specified. Se questo FileStream è proprietario dell'handle, una chiamata al metodo Close chiuderà anche l'handle.If this FileStream owns the handle, a call to the Close method will also close the handle. In particolare, il numero di handle del file viene decrementato.In particular, the file's handle count is decremented. All'oggetto FileStream vengono assegnate le dimensioni del buffer specificate.The FileStream object is given the specified buffer size.

FileStream presuppone che disponga di controllo esclusivo sull'handle.FileStream assumes that it has exclusive control over the handle. La lettura, la scrittura o la ricerca mentre un FileStream contiene anche un handle può causare il danneggiamento dei dati.Reading, writing, or seeking while a FileStream is also holding a handle could result in data corruption. Per la sicurezza dei dati, chiamare Flush prima di usare l'handle ed evitare di chiamare metodi diversi da Close dopo aver completato l'utilizzo dell'handle.For data safety, call Flush before using the handle, and avoid calling any methods other than Close after you are done using the handle. In alternativa, leggere e scrivere nell'handle prima di chiamare questo costruttore FileStream.Alternately, read and write to the handle before calling this FileStream constructor.

FileShare.Read è l'impostazione predefinita per i costruttori FileStream senza un parametro di FileShare.FileShare.Read is the default for those FileStream constructors without a FileShare parameter.

Attenzione

Quando si compila un set di caratteri con una particolare impostazione culturale e si recuperano gli stessi caratteri con un'impostazione culturale diversa, i caratteri potrebbero non essere interpretabili e potrebbe causare la generazione di un'eccezione.When you compile a set of characters with a particular cultural setting and retrieve those same characters with a different cultural setting, the characters might not be interpretable, and could cause an exception to be thrown.

Per un elenco delle operazioni comuni di file e directory, vedere attività di I/O comuni.For a list of common file and directory operations, see Common I/O Tasks.

Sicurezza

SecurityPermission
per l'accesso al codice non gestito.for access to unmanaged code. Enumerazione associata: UnmanagedCode.Associated enumeration: UnmanagedCode.

Vedi anche

FileStream(String, FileMode, FileAccess, FileShare)

Inizializza una nuova istanza della classe FileStream con il percorso, la modalità di creazione, l'autorizzazione di lettura/scrittura e l'autorizzazione di condivisione specificati.Initializes a new instance of the FileStream class with the specified path, creation mode, read/write permission, and sharing permission.

public:
 FileStream(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access, System::IO::FileShare share);
public FileStream (string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share);
new System.IO.FileStream : string * System.IO.FileMode * System.IO.FileAccess * System.IO.FileShare -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, access As FileAccess, share As FileShare)

Parametri

path
String

Percorso relativo o assoluto per il file che sarà incapsulato dall'oggetto FileStream corrente.A relative or absolute path for the file that the current FileStream object will encapsulate.

mode
FileMode

Uno dei valori di enumerazione che determina come aprire o creare il file.One of the enumeration values that determines how to open or create the file.

access
FileAccess

Combinazione bit per bit dei valori di enumerazione, che determina la modalità di accesso al file dall'oggetto FileStream.A bitwise combination of the enumeration values that determines how the file can be accessed by the FileStream object. Determina anche i valori restituiti dalle proprietà CanRead e CanWrite dell'oggetto FileStream.This also determines the values returned by the CanRead and CanWrite properties of the FileStream object. CanSeek è true se path specifica un file su disco.CanSeek is true if path specifies a disk file.

share
FileShare

Combinazione bit per bit dei valori di enumerazione, che determina come il file verrà condiviso dai processi.A bitwise combination of the enumeration values that determines how the file will be shared by processes.

Eccezioni

path è null.path is null.

path è una stringa vuota (""), contiene solo spazi vuoti oppure contiene uno o più caratteri non validi.path is an empty string (""), contains only white space, or contains one or more invalid characters.

-oppure--or- path fa riferimento a dispositivi non basati su file come "con:", "com1:", "lpt1:" e così via in un ambiente NTFS.path refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.

path fa riferimento a dispositivi non basati su file come "con:", "com1:", "lpt1:" e così via in un ambiente non NTFS.path refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.

Il file non è stato trovato, ad esempio se mode è FileMode.Truncate o FileMode.Open e il file specificato da path non esiste.The file cannot be found, such as when mode is FileMode.Truncate or FileMode.Open, and the file specified by path does not exist. È necessario che il file sia già disponibile in queste modalità.The file must already exist in these modes.

Si è verificato un errore di I/O, ad esempio quando si specifica FileMode.CreateNew e il file specificato da path è già presente.An I/O error, such as specifying FileMode.CreateNew when the file specified by path already exists, occurred.

-oppure--or- Il sistema esegue Windows 98 o Windows 98 Second Edition e share è impostato su FileShare.Delete.The system is running Windows 98 or Windows 98 Second Edition and share is set to FileShare.Delete.

-oppure--or- Il flusso è stato chiuso.The stream has been closed.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

Il percorso specificato non è valido, ad esempio si trova in un'unità non mappata.The specified path is invalid, such as being on an unmapped drive.

L'oggetto access richiesto non è consentito dal sistema operativo per l'oggetto path specificato, ad esempio quando access è Write o ReadWrite e la directory o il file è impostato per l'accesso in sola lettura.The access requested is not permitted by the operating system for the specified path, such as when access is Write or ReadWrite and the file or directory is set for read-only access.

Il percorso specificato, il nome file o entrambi superano la lunghezza massima definita dal sistema.The specified path, file name, or both exceed the system-defined maximum length.

mode contiene un valore non valido.mode contains an invalid value.

Esempi

Questo esempio di codice fa parte di un esempio più ampio fornito per il metodo Lock.This code example is part of a larger example provided for the Lock method.

FileStream^ fileStream = gcnew FileStream( "Test#@@#.dat",FileMode::OpenOrCreate,FileAccess::ReadWrite,FileShare::ReadWrite );

using(FileStream fileStream = new FileStream(
    "Test#@@#.dat", FileMode.OpenOrCreate, 
    FileAccess.ReadWrite, FileShare.ReadWrite))
Dim aFileStream As New FileStream( _
    "Test#@@#.dat", FileMode.OpenOrCreate, _
    FileAccess.ReadWrite, FileShare.ReadWrite)

Commenti

Il .NET Framework non supporta l'accesso diretto ai dischi fisici tramite percorsi che sono nomi di dispositivo, ad esempio "\\.\PHYSICALDRIVE0".The .NET Framework does not support direct access to physical disks through paths that are device names, such as "\\.\PHYSICALDRIVE0 ".

Il path parametro può essere un nome di file, incluso un file in una condivisione Universal Naming Convention (UNC).The path parameter can be a file name, including a file on a Universal Naming Convention (UNC) share.

Al costruttore viene assegnato l'accesso in lettura/scrittura al file e viene aperta la condivisione dell'accesso in lettura (ovvero, le richieste di apertura del file per la scrittura da parte di questo o un altro processo avrà esito negativo fino a quando l'oggetto FileStream non è stato chiuso, ma i tentativi di lettura avranno esito positivo).The constructor is given read/write access to the file, and it is opened sharing Read access (that is, requests to open the file for writing by this or another process will fail until the FileStream object has been closed, but read attempts will succeed). Le dimensioni del buffer sono impostate sulle dimensioni predefinite di 4096 byte (4 KB).The buffer size is set to the default size of 4096 bytes (4 KB).

Nota

non è necessario che path sia un file archiviato su disco; può trattarsi di qualsiasi parte di un sistema che supporta l'accesso tramite flussi.path is not required to be a file stored on disk; it can be any part of a system that supports access through streams. Ad esempio, a seconda del sistema, questa classe può accedere a un dispositivo fisico.For example, depending on the system, this class can access a physical device.

CanSeek è true per tutti gli oggetti FileStream che incapsulano i file.CanSeek is true for all FileStream objects that encapsulate files. Se path indica un dispositivo che non supporta la ricerca, la proprietà CanSeek sul FileStream risultante viene false.If path indicates a device that does not support seeking, the CanSeek property on the resulting FileStream is false. Per altre informazioni, vedere CanSeek.For additional information, see CanSeek.

Attenzione

Quando si compila un set di caratteri con una particolare impostazione culturale e si recuperano gli stessi caratteri con un'impostazione culturale diversa, i caratteri potrebbero non essere interpretabili e potrebbe causare la generazione di un'eccezione.When you compile a set of characters with a particular cultural setting and retrieve those same characters with a different cultural setting, the characters might not be interpretable, and could cause an exception to be thrown.

Per un elenco delle operazioni comuni di file e directory, vedere attività di I/O comuni.For a list of common file and directory operations, see Common I/O Tasks.

Sicurezza

FileIOPermission
per la lettura, la scrittura e l'accodamento ai file.for reading, writing, and appending to files. Enumerazioni associate: Read, Writee Append.Associated enumerations: Read, Write, and Append.

Vedi anche

FileStream(String, FileMode, FileAccess, FileShare, Int32, FileOptions)

Inizializza una nuova istanza della classe FileStream con il percorso, la modalità di creazione, l'autorizzazione di lettura/scrittura e condivisione, l'accesso consentito ad altri FileStream allo stesso file, la dimensione del buffer e le opzioni aggiuntive del file specificati.Initializes a new instance of the FileStream class with the specified path, creation mode, read/write and sharing permission, the access other FileStreams can have to the same file, the buffer size, and additional file options.

public:
 FileStream(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access, System::IO::FileShare share, int bufferSize, System::IO::FileOptions options);
public FileStream (string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options);
new System.IO.FileStream : string * System.IO.FileMode * System.IO.FileAccess * System.IO.FileShare * int * System.IO.FileOptions -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, access As FileAccess, share As FileShare, bufferSize As Integer, options As FileOptions)

Parametri

path
String

Percorso relativo o assoluto per il file che sarà incapsulato dall'oggetto FileStream corrente.A relative or absolute path for the file that the current FileStream object will encapsulate.

mode
FileMode

Uno dei valori di enumerazione che determina come aprire o creare il file.One of the enumeration values that determines how to open or create the file.

access
FileAccess

Combinazione bit per bit dei valori di enumerazione che determina la modalità di accesso al file dall'oggetto FileStream.A bitwise combination of the enumeration values that determines how the file can be accessed by the FileStream object. Determina anche i valori restituiti dalle proprietà CanRead e CanWrite dell'oggetto FileStream.This also determines the values returned by the CanRead and CanWrite properties of the FileStream object. CanSeek è true se path specifica un file su disco.CanSeek is true if path specifies a disk file.

share
FileShare

Combinazione bit per bit dei valori di enumerazione che determina come il file verrà condiviso dai processi.A bitwise combination of the enumeration values that determines how the file will be shared by processes.

bufferSize
Int32

Valore positivo Int32 maggiore di 0 che indica la dimensione del buffer.A positive Int32 value greater than 0 indicating the buffer size. La dimensione del buffer predefinita è 4096.The default buffer size is 4096.

options
FileOptions

Combinazione bit per bit dei valori di enumerazione che specifica le opzioni dei file aggiuntive.A bitwise combination of the enumeration values that specifies additional file options.

Eccezioni

path è null.path is null.

path è una stringa vuota (""), contiene solo spazi vuoti oppure contiene uno o più caratteri non validi.path is an empty string (""), contains only white space, or contains one or more invalid characters.

-oppure--or- path fa riferimento a dispositivi non basati su file come "con:", "com1:", "lpt1:" e così via in un ambiente NTFS.path refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.

path fa riferimento a dispositivi non basati su file come "con:", "com1:", "lpt1:" e così via in un ambiente non NTFS.path refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.

bufferSize è un valore negativo o zero.bufferSize is negative or zero.

-oppure--or- mode, access o share contiene un valore non valido.mode, access, or share contain an invalid value.

Il file non è stato trovato, ad esempio se mode è FileMode.Truncate o FileMode.Open e il file specificato da path non esiste.The file cannot be found, such as when mode is FileMode.Truncate or FileMode.Open, and the file specified by path does not exist. È necessario che il file sia già disponibile in queste modalità.The file must already exist in these modes.

Si è verificato un errore di I/O, ad esempio quando si specifica FileMode.CreateNew e il file specificato da path è già presente.An I/O error, such as specifying FileMode.CreateNew when the file specified by path already exists, occurred.

-oppure--or- Il flusso è stato chiuso.The stream has been closed.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

Il percorso specificato non è valido, ad esempio si trova in un'unità non mappata.The specified path is invalid, such as being on an unmapped drive.

L'oggetto access richiesto non è consentito dal sistema operativo per l'oggetto path specificato, ad esempio quando access è Write o ReadWrite e la directory o il file è impostato per l'accesso in sola lettura.The access requested is not permitted by the operating system for the specified path, such as when access is Write or ReadWrite and the file or directory is set for read-only access.

-oppure--or- Encrypted è specificato per options, ma la crittografia del file non è supportata sulla piattaforma corrente.Encrypted is specified for options, but file encryption is not supported on the current platform.

Il percorso specificato, il nome file o entrambi superano la lunghezza massima definita dal sistema.The specified path, file name, or both exceed the system-defined maximum length.

Esempi

Nell'esempio seguente vengono scritti i dati in un file e quindi vengono letti i dati utilizzando l'oggetto FileStream.The following example writes data to a file and then reads the data using the FileStream object.

#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Security::AccessControl;

int main()
{
    try
    {
        // Create a file and write data to it.

        // Create an array of bytes.
        array<Byte>^ messageByte =
            Encoding::ASCII->GetBytes("Here is some data.");

        // Create a file using the FileStream class.
        FileStream^ fWrite = gcnew FileStream("test.txt", FileMode::Create,
            FileAccess::ReadWrite, FileShare::None, 8, FileOptions::None);

        // Write the number of bytes to the file.
        fWrite->WriteByte((Byte)messageByte->Length);

        // Write the bytes to the file.
        fWrite->Write(messageByte, 0, messageByte->Length);

        // Close the stream.
        fWrite->Close();


        // Open a file and read the number of bytes.

        FileStream^ fRead = gcnew FileStream("test.txt", 
            FileMode::Open);

        // The first byte is the string length.
        int length = (int)fRead->ReadByte();

        // Create a new byte array for the data.
        array<Byte>^ readBytes = gcnew array<Byte>(length);

        // Read the data from the file.
        fRead->Read(readBytes, 0, readBytes->Length);

        // Close the stream.
        fRead->Close();

        // Display the data.
        Console::WriteLine(Encoding::ASCII->GetString(readBytes));

        Console::WriteLine("Done writing and reading data.");
    }
    catch (IOException^ ex)
    {
        Console::WriteLine(ex->Message);
    }
}
using System;
using System.IO;
using System.Text;
using System.Security.AccessControl;

namespace FileSystemExample
{
    class FileStreamExample
    {
        public static void Main()
        {
            try
            {
                // Create a file and write data to it.

                // Create an array of bytes.
                byte[] messageByte = Encoding.ASCII.GetBytes("Here is some data.");

                // Create a file using the FileStream class.
                FileStream fWrite = new FileStream("test.txt", FileMode.Create, FileAccess.ReadWrite, FileShare.None, 8, FileOptions.None);

                // Write the number of bytes to the file.
                fWrite.WriteByte((byte)messageByte.Length);

                // Write the bytes to the file.
                fWrite.Write(messageByte, 0, messageByte.Length);

                // Close the stream.
                fWrite.Close();

                
                // Open a file and read the number of bytes.

                FileStream fRead = new FileStream("test.txt", FileMode.Open);

                // The first byte is the string length.
                int length = (int)fRead.ReadByte();

                // Create a new byte array for the data.
                byte[] readBytes = new byte[length];

                // Read the data from the file.
                fRead.Read(readBytes, 0, readBytes.Length);

                // Close the stream.
                fRead.Close();

                // Display the data.
                Console.WriteLine(Encoding.ASCII.GetString(readBytes));

                Console.WriteLine("Done writing and reading data.");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            Console.ReadLine();
        }
    }
}

Imports System.IO
Imports System.Text
Imports System.Security.AccessControl



Module FileStreamExample

    Sub Main()
        Try
            ' Create a file and write data to it.
            ' Create an array of bytes.
            Dim messageByte As Byte() = Encoding.ASCII.GetBytes("Here is some data.")

            ' Create a file using the FileStream class.
            Dim fWrite As New FileStream("test.txt", FileMode.Create, FileAccess.ReadWrite, FileShare.None, 8, FileOptions.None)

            ' Write the number of bytes to the file.
            fWrite.WriteByte(System.Convert.ToByte(messageByte.Length))

            ' Write the bytes to the file.
            fWrite.Write(messageByte, 0, messageByte.Length)

            ' Close the stream.
            fWrite.Close()


            ' Open a file and read the number of bytes.
            Dim fRead As New FileStream("test.txt", FileMode.Open)

            ' The first byte is the string length.
            Dim length As Integer = Fix(fRead.ReadByte())

            ' Create a new byte array for the data.
            Dim readBytes(length) As Byte

            ' Read the data from the file.
            fRead.Read(readBytes, 0, readBytes.Length)

            ' Close the stream.
            fRead.Close()

            ' Display the data.
            Console.WriteLine(Encoding.ASCII.GetString(readBytes))

            Console.WriteLine("Done writing and reading data.")
        Catch e As Exception
            Console.WriteLine(e)
        End Try

        Console.ReadLine()

    End Sub
End Module

Commenti

Il .NET Framework non supporta l'accesso diretto ai dischi fisici tramite percorsi che sono nomi di dispositivo, ad esempio "\\.\PHYSICALDRIVE0".The .NET Framework does not support direct access to physical disks through paths that are device names, such as "\\.\PHYSICALDRIVE0 ".

Il parametro fileOptions viene usato per fornire l'accesso a operazioni più avanzate che possono essere sfruttate durante la creazione di un oggetto FileStream.The fileOptions parameter is used to provide access to more advanced operations that can be leveraged when creating a FileStream object.

Il path parametro può essere un nome di file, incluso un file in una condivisione Universal Naming Convention (UNC).The path parameter can be a file name, including a file on a Universal Naming Convention (UNC) share.

Nota

non è necessario che path sia un file archiviato su disco; può trattarsi di qualsiasi parte di un sistema che supporta l'accesso tramite flussi.path is not required to be a file stored on disk; it can be any part of a system that supports access through streams. Ad esempio, a seconda del sistema, questa classe può accedere a un dispositivo fisico.For example, depending on the system, this class can access a physical device.

CanSeek è true per tutti gli oggetti FileStream che incapsulano i file.CanSeek is true for all FileStream objects that encapsulate files. Se path indica un dispositivo che non supporta la ricerca, la proprietà CanSeek sul FileStream risultante viene false.If path indicates a device that does not support seeking, the CanSeek property on the resulting FileStream is false. Per altre informazioni, vedere CanSeek.For additional information, see CanSeek.

Attenzione

Quando si compila un set di caratteri con una particolare impostazione culturale e si recuperano gli stessi caratteri con un'impostazione culturale diversa, i caratteri potrebbero non essere interpretabili e potrebbe causare la generazione di un'eccezione.When you compile a set of characters with a particular cultural setting and retrieve those same characters with a different cultural setting, the characters might not be interpretable, and could cause an exception to be thrown.

Per un elenco delle operazioni comuni di file e directory, vedere attività di I/O comuni.For a list of common file and directory operations, see Common I/O Tasks.

Sicurezza

FileIOPermission
per la lettura, la scrittura e l'accodamento ai file.for reading, writing, and appending to files. Enumerazioni associate: Read, Writee Append.Associated enumerations: Read, Write, and Append.

Vedi anche

FileStream(SafeFileHandle, FileAccess, Int32, Boolean)

Inizializza una nuova istanza della classe FileStream per l'handle di file specificato, con l'autorizzazione di lettura/scrittura, la dimensione del buffer e lo stato sincrono o asincrono specificati.Initializes a new instance of the FileStream class for the specified file handle, with the specified read/write permission, buffer size, and synchronous or asynchronous state.

public:
 FileStream(Microsoft::Win32::SafeHandles::SafeFileHandle ^ handle, System::IO::FileAccess access, int bufferSize, bool isAsync);
public FileStream (Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize, bool isAsync);
new System.IO.FileStream : Microsoft.Win32.SafeHandles.SafeFileHandle * System.IO.FileAccess * int * bool -> System.IO.FileStream
Public Sub New (handle As SafeFileHandle, access As FileAccess, bufferSize As Integer, isAsync As Boolean)

Parametri

handle
SafeFileHandle

Handle di file relativo al file che sarà incapsulato nell'oggetto FileStream.A file handle for the file that this FileStream object will encapsulate.

access
FileAccess

Combinazione bit per bit dei valori di enumerazione, che imposta le proprietà CanRead e CanWrite dell'oggetto FileStream.A bitwise combination of the enumeration values that sets the CanRead and CanWrite properties of the FileStream object.

bufferSize
Int32

Valore positivo Int32 maggiore di 0 che indica la dimensione del buffer.A positive Int32 value greater than 0 indicating the buffer size. La dimensione del buffer predefinita è 4096.The default buffer size is 4096.

isAsync
Boolean

true se l'handle è stato aperto in modalità asincrona, ovvero in modalità I/O sovrapposta; in caso contrario, false.true if the handle was opened asynchronously (that is, in overlapped I/O mode); otherwise, false.

Eccezioni

Il parametro handle non è un handle valido.The handle parameter is an invalid handle.

-oppure--or- Il parametro handle è un handle sincrono ed è stato usato in modo asincrono.The handle parameter is a synchronous handle and it was used asynchronously.

Il parametro bufferSize è negativo.The bufferSize parameter is negative.

Si è verificato un errore di I/O, ad esempio un errore del disco.An I/O error, such as a disk error, occurred.

-oppure--or-

Il flusso è stato chiuso.The stream has been closed.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

L'oggetto access richiesto non è consentito dal sistema operativo per l'handle di file specificato, ad esempio quando access è Write o ReadWrite e l'handle di file è impostato per l'accesso in sola lettura.The access requested is not permitted by the operating system for the specified file handle, such as when access is Write or ReadWrite and the file handle is set for read-only access.

Commenti

Impostare il parametro isAsync su true per aprire l'handle di file in modo asincrono.You set the isAsync parameter to true to open the file handle asynchronously. Quando il parametro è true, il flusso utilizza le operazioni di I/O sovrapposte per eseguire operazioni sui file in modo asincrono.When the parameter is true, the stream utilizes overlapped I/O to perform file operations asynchronously. Tuttavia, il parametro non deve essere true per chiamare il metodo ReadAsync, WriteAsynco CopyToAsync.However, the parameter does not have to be true to call the ReadAsync, WriteAsync, or CopyToAsync method. Quando il parametro isAsync viene false e si chiamano le operazioni di lettura e scrittura asincrone, il thread dell'interfaccia utente non è ancora bloccato, ma l'operazione di I/O effettiva viene eseguita in modo sincrono.When the isAsync parameter is false and you call the asynchronous read and write operations, the UI thread is still not blocked, but the actual I/O operation is performed synchronously.

FileStream presuppone che disponga di controllo esclusivo sull'handle.FileStream assumes that it has exclusive control over the handle. La lettura, la scrittura o la ricerca mentre un FileStream contiene anche un handle può causare il danneggiamento dei dati.Reading, writing, or seeking while a FileStream is also holding a handle could result in data corruption. Per la sicurezza dei dati, chiamare Flush prima di usare l'handle ed evitare di chiamare metodi diversi da Close dopo aver completato l'utilizzo dell'handle.For data safety, call Flush before using the handle, and avoid calling any methods other than Close after you are done using the handle. In alternativa, leggere e scrivere nell'handle prima di chiamare questo costruttore FileStream.Alternately, read and write to the handle before calling this FileStream constructor.

FileShare.Read è l'impostazione predefinita per i costruttori FileStream senza un parametro di FileShare.FileShare.Read is the default for those FileStream constructors without a FileShare parameter.

Attenzione

Quando si compila un set di caratteri con una particolare impostazione culturale e si recuperano gli stessi caratteri con un'impostazione culturale diversa, i caratteri potrebbero non essere interpretabili e potrebbe causare la generazione di un'eccezione.When you compile a set of characters with a particular cultural setting and retrieve those same characters with a different cultural setting, the characters might not be interpretable, and could cause an exception to be thrown.

Per un elenco delle operazioni comuni di file e directory, vedere attività di I/O comuni.For a list of common file and directory operations, see Common I/O Tasks.

Sicurezza

FileIOPermission
per la lettura, la scrittura e l'accodamento ai file.for reading, writing, and appending to files. Enumerazioni associate: Read, Writee Append.Associated enumerations: Read, Write, and Append.

SecurityPermission
per l'autorizzazione a chiamare codice non gestito.for permission to call unmanaged code. Enumerazioni associate: UnmanagedCodeAssociated enumerations: UnmanagedCode

Vedi anche

FileStream(String, FileMode, FileAccess)

Inizializza una nuova istanza della classe FileStream con il percorso, la modalità di creazione e l'autorizzazione di lettura/scrittura specificati.Initializes a new instance of the FileStream class with the specified path, creation mode, and read/write permission.

public:
 FileStream(System::String ^ path, System::IO::FileMode mode, System::IO::FileAccess access);
public FileStream (string path, System.IO.FileMode mode, System.IO.FileAccess access);
new System.IO.FileStream : string * System.IO.FileMode * System.IO.FileAccess -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode, access As FileAccess)

Parametri

path
String

Percorso relativo o assoluto per il file che sarà incapsulato dall'oggetto FileStream corrente.A relative or absolute path for the file that the current FileStream object will encapsulate.

mode
FileMode

Uno dei valori di enumerazione che determina come aprire o creare il file.One of the enumeration values that determines how to open or create the file.

access
FileAccess

Combinazione bit per bit dei valori di enumerazione, che determina la modalità di accesso al file dall'oggetto FileStream.A bitwise combination of the enumeration values that determines how the file can be accessed by the FileStream object. Determina anche i valori restituiti dalle proprietà CanRead e CanWrite dell'oggetto FileStream.This also determines the values returned by the CanRead and CanWrite properties of the FileStream object. CanSeek è true se path specifica un file su disco.CanSeek is true if path specifies a disk file.

Eccezioni

path è null.path is null.

path è una stringa vuota (""), contiene solo spazi vuoti oppure contiene uno o più caratteri non validi.path is an empty string (""), contains only white space, or contains one or more invalid characters.

-oppure--or- path fa riferimento a dispositivi non basati su file come "con:", "com1:", "lpt1:" e così via in un ambiente NTFS.path refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.

path fa riferimento a dispositivi non basati su file come "con:", "com1:", "lpt1:" e così via in un ambiente non NTFS.path refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.

Il file non è stato trovato, ad esempio se mode è FileMode.Truncate o FileMode.Open e il file specificato da path non esiste.The file cannot be found, such as when mode is FileMode.Truncate or FileMode.Open, and the file specified by path does not exist. È necessario che il file sia già disponibile in queste modalità.The file must already exist in these modes.

Si è verificato un errore di I/O, ad esempio quando si specifica FileMode.CreateNew e il file specificato da path è già presente.An I/O error, such as specifying FileMode.CreateNew when the file specified by path already exists, occurred.

-oppure--or- Il flusso è stato chiuso.The stream has been closed.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

Il percorso specificato non è valido, ad esempio si trova in un'unità non mappata.The specified path is invalid, such as being on an unmapped drive.

L'oggetto access richiesto non è consentito dal sistema operativo per l'oggetto path specificato, ad esempio quando access è Write o ReadWrite e la directory o il file è impostato per l'accesso in sola lettura.The access requested is not permitted by the operating system for the specified path, such as when access is Write or ReadWrite and the file or directory is set for read-only access.

Il percorso specificato, il nome file o entrambi superano la lunghezza massima definita dal sistema.The specified path, file name, or both exceed the system-defined maximum length.

mode contiene un valore non valido.mode contains an invalid value.

Commenti

Il .NET Framework non supporta l'accesso diretto ai dischi fisici tramite percorsi che sono nomi di dispositivo, ad esempio "\\.\PHYSICALDRIVE0".The .NET Framework does not support direct access to physical disks through paths that are device names, such as "\\.\PHYSICALDRIVE0 ".

Il path parametro può essere un nome di file, incluso un file in una condivisione Universal Naming Convention (UNC).The path parameter can be a file name, including a file on a Universal Naming Convention (UNC) share.

Al costruttore viene assegnato l'accesso in lettura/scrittura al file e viene aperta la condivisione dell'accesso in lettura (ovvero, le richieste di apertura del file per la scrittura da parte di questo o un altro processo avrà esito negativo fino a quando l'oggetto FileStream non è stato chiuso, ma i tentativi di lettura avranno esito positivo).The constructor is given read/write access to the file, and it is opened sharing Read access (that is, requests to open the file for writing by this or another process will fail until the FileStream object has been closed, but read attempts will succeed). Le dimensioni del buffer sono impostate sulle dimensioni predefinite di 4096 byte (4 KB).The buffer size is set to the default size of 4096 bytes (4 KB).

Nota

non è necessario che path sia un file archiviato su disco; può trattarsi di qualsiasi parte di un sistema che supporta l'accesso tramite flussi.path is not required to be a file stored on disk; it can be any part of a system that supports access through streams. Ad esempio, a seconda del sistema, questa classe può accedere a un dispositivo fisico.For example, depending on the system, this class can access a physical device.

CanSeek è true per tutti gli oggetti FileStream che incapsulano i file.CanSeek is true for all FileStream objects that encapsulate files. Se path indica un dispositivo che non supporta la ricerca, la proprietà CanSeek sul FileStream risultante viene false.If path indicates a device that does not support seeking, the CanSeek property on the resulting FileStream is false. Per altre informazioni, vedere CanSeek.For additional information, see CanSeek.

FileShare.Read è l'impostazione predefinita per i costruttori FileStream senza un parametro di FileShare.FileShare.Read is the default for those FileStream constructors without a FileShare parameter.

Attenzione

Quando si compila un set di caratteri con una particolare impostazione culturale e si recuperano gli stessi caratteri con un'impostazione culturale diversa, i caratteri potrebbero non essere interpretabili e potrebbe causare la generazione di un'eccezione.When you compile a set of characters with a particular cultural setting and retrieve those same characters with a different cultural setting, the characters might not be interpretable, and could cause an exception to be thrown.

Per un elenco delle operazioni comuni di file e directory, vedere attività di I/O comuni.For a list of common file and directory operations, see Common I/O Tasks.

Sicurezza

FileIOPermission
per la lettura, la scrittura e l'accodamento ai file.for reading, writing, and appending to files. Enumerazioni associate: Read, Writee Append.Associated enumerations: Read, Write, and Append.

Vedi anche

FileStream(IntPtr, FileAccess, Boolean)

Avviso

Questa API è ora obsoleta.

Inizializza una nuova istanza della classe FileStream per l'handle di file specificato, con l'autorizzazione di lettura/scrittura e la proprietà dell'istanza di FileStream.Initializes a new instance of the FileStream class for the specified file handle, with the specified read/write permission and FileStream instance ownership.

public:
 FileStream(IntPtr handle, System::IO::FileAccess access, bool ownsHandle);
[System.Obsolete("Use FileStream(SafeFileHandle handle, FileAccess access) instead")]
[System.Obsolete("This constructor has been deprecated.  Please use new FileStream(SafeFileHandle handle, FileAccess access) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed.  https://go.microsoft.com/fwlink/?linkid=14202")]
[System.Obsolete("This constructor has been deprecated.  Please use new FileStream(SafeFileHandle handle, FileAccess access) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed.  https://go.microsoft.com/fwlink/?linkid=14202")]
public FileStream (IntPtr handle, System.IO.FileAccess access, bool ownsHandle);
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool -> System.IO.FileStream
Public Sub New (handle As IntPtr, access As FileAccess, ownsHandle As Boolean)

Parametri

handle
IntPtr

Handle di file relativo al file che sarà incapsulato nell'oggetto FileStream corrente.A file handle for the file that the current FileStream object will encapsulate.

access
FileAccess

Combinazione bit per bit dei valori di enumerazione, che imposta le proprietà CanRead e CanWrite dell'oggetto FileStream.A bitwise combination of the enumeration values that sets the CanRead and CanWrite properties of the FileStream object.

ownsHandle
Boolean

true se l'handle del file è di proprietà dell'istanza di FileStream; in caso contrario, false.true if the file handle will be owned by this FileStream instance; otherwise, false.

Attributi

Eccezioni

access non è un campo di FileAccess.access is not a field of FileAccess.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

Si è verificato un errore di I/O, ad esempio un errore del disco.An I/O error, such as a disk error, occurred.

-oppure--or-

Il flusso è stato chiuso.The stream has been closed.

L'oggetto access richiesto non è consentito dal sistema operativo per l'handle di file specificato, ad esempio quando access è Write o ReadWrite e l'handle di file è impostato per l'accesso in sola lettura.The access requested is not permitted by the operating system for the specified file handle, such as when access is Write or ReadWrite and the file handle is set for read-only access.

Commenti

All'oggetto FileStream viene assegnato l'accesso specificato al file.The FileStream object is given the specified access to the file. La proprietà dell'handle sarà specificata.The ownership of the handle will be as specified. Se questo processo è proprietario dell'handle, una chiamata al metodo Close chiuderà anche l'handle e il numero di handle del file verrà decrementato.If this process owns the handle, a call to the Close method will also close the handle and the file's handle count is decremented. All'oggetto FileStream vengono assegnate le dimensioni predefinite del buffer di 4096 byte.The FileStream object is given the default buffer size of 4096 bytes.

FileStream presuppone che disponga di controllo esclusivo sull'handle.FileStream assumes that it has exclusive control over the handle. La lettura, la scrittura o la ricerca mentre un FileStream contiene anche un handle può causare il danneggiamento dei dati.Reading, writing, or seeking while a FileStream is also holding a handle could result in data corruption. Per la sicurezza dei dati, chiamare Flush prima di usare l'handle ed evitare di chiamare metodi diversi da Close dopo aver completato l'utilizzo dell'handle.For data safety, call Flush before using the handle, and avoid calling methods other than Close after you are done using the handle.

FileShare.Read è l'impostazione predefinita per i costruttori FileStream senza un parametro di FileShare.FileShare.Read is the default for those FileStream constructors without a FileShare parameter.

Attenzione

Quando si compila un set di caratteri con una particolare impostazione culturale e si recuperano gli stessi caratteri con un'impostazione culturale diversa, i caratteri potrebbero non essere interpretabili e potrebbe causare la generazione di un'eccezione.When you compile a set of characters with a particular cultural setting and retrieve those same characters with a different cultural setting, the characters might not be interpretable, and could cause an exception to be thrown.

Per un elenco delle operazioni comuni di file e directory, vedere attività di I/O comuni.For a list of common file and directory operations, see Common I/O Tasks.

Sicurezza

FileIOPermission
per la lettura, la scrittura e l'accodamento ai file.for reading, writing, and appending to files. Enumerazioni associate: Read, Writee Append.Associated enumerations: Read, Write, and Append.

Vedi anche

FileStream(SafeFileHandle, FileAccess, Int32)

Inizializza una nuova istanza della classe FileStream per l'handle di file specificato, con l'autorizzazione di lettura/scrittura e la dimensione del buffer specificate.Initializes a new instance of the FileStream class for the specified file handle, with the specified read/write permission, and buffer size.

public:
 FileStream(Microsoft::Win32::SafeHandles::SafeFileHandle ^ handle, System::IO::FileAccess access, int bufferSize);
public FileStream (Microsoft.Win32.SafeHandles.SafeFileHandle handle, System.IO.FileAccess access, int bufferSize);
new System.IO.FileStream : Microsoft.Win32.SafeHandles.SafeFileHandle * System.IO.FileAccess * int -> System.IO.FileStream
Public Sub New (handle As SafeFileHandle, access As FileAccess, bufferSize As Integer)

Parametri

handle
SafeFileHandle

Handle di file relativo al file che sarà incapsulato nell'oggetto FileStream corrente.A file handle for the file that the current FileStream object will encapsulate.

access
FileAccess

Costante FileAccess che imposta le proprietà CanRead e CanWrite dell'oggetto FileStream.A FileAccess constant that sets the CanRead and CanWrite properties of the FileStream object.

bufferSize
Int32

Valore positivo Int32 maggiore di 0 che indica la dimensione del buffer.A positive Int32 value greater than 0 indicating the buffer size. La dimensione del buffer predefinita è 4096.The default buffer size is 4096.

Eccezioni

Il parametro handle non è un handle valido.The handle parameter is an invalid handle.

-oppure--or- Il parametro handle è un handle sincrono ed è stato usato in modo asincrono.The handle parameter is a synchronous handle and it was used asynchronously.

Il parametro bufferSize è negativo.The bufferSize parameter is negative.

Si è verificato un errore di I/O, ad esempio un errore del disco.An I/O error, such as a disk error, occurred.

-oppure--or-

Il flusso è stato chiuso.The stream has been closed.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

L'oggetto access richiesto non è consentito dal sistema operativo per l'handle di file specificato, ad esempio quando access è Write o ReadWrite e l'handle di file è impostato per l'accesso in sola lettura.The access requested is not permitted by the operating system for the specified file handle, such as when access is Write or ReadWrite and the file handle is set for read-only access.

Commenti

FileStream presuppone che disponga di controllo esclusivo sull'handle.FileStream assumes that it has exclusive control over the handle. La lettura, la scrittura o la ricerca mentre un FileStream contiene anche un handle può causare il danneggiamento dei dati.Reading, writing, or seeking while a FileStream is also holding a handle could result in data corruption. Per la sicurezza dei dati, chiamare Flush prima di usare l'handle ed evitare di chiamare metodi diversi da Close dopo aver completato l'utilizzo dell'handle.For data safety, call Flush before using the handle, and avoid calling any methods other than Close after you are done using the handle. In alternativa, leggere e scrivere nell'handle prima di chiamare questo costruttore FileStream.Alternately, read and write to the handle before calling this FileStream constructor.

FileShare.Read è l'impostazione predefinita per i costruttori FileStream senza un parametro di FileShare.FileShare.Read is the default for those FileStream constructors without a FileShare parameter.

Attenzione

Quando si compila un set di caratteri con una particolare impostazione culturale e si recuperano gli stessi caratteri con un'impostazione culturale diversa, i caratteri potrebbero non essere interpretabili e potrebbe causare la generazione di un'eccezione.When you compile a set of characters with a particular cultural setting and retrieve those same characters with a different cultural setting, the characters might not be interpretable, and could cause an exception to be thrown.

Per un elenco delle operazioni comuni di file e directory, vedere attività di I/O comuni.For a list of common file and directory operations, see Common I/O Tasks.

Sicurezza

FileIOPermission
per la lettura, la scrittura e l'accodamento ai file.for reading, writing, and appending to files. Enumerazioni associate: Read, Writee Append.Associated enumerations: Read, Write, and Append.

SecurityPermission
per l'autorizzazione a chiamare codice non gestito.for permission to call unmanaged code. Enumerazioni associate: UnmanagedCodeAssociated enumerations: UnmanagedCode

Vedi anche

FileStream(IntPtr, FileAccess, Boolean, Int32)

Avviso

Questa API è ora obsoleta.

Inizializza una nuova istanza della classe FileStream per l'handle di file specificato, con l'autorizzazione di lettura/scrittura, la proprietà dell'istanza di FileStream e la dimensione del buffer specificate.Initializes a new instance of the FileStream class for the specified file handle, with the specified read/write permission, FileStream instance ownership, and buffer size.

public:
 FileStream(IntPtr handle, System::IO::FileAccess access, bool ownsHandle, int bufferSize);
[System.Obsolete("Use FileStream(SafeFileHandle handle, FileAccess access, int bufferSize) instead")]
[System.Obsolete("This constructor has been deprecated.  Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed.  https://go.microsoft.com/fwlink/?linkid=14202")]
[System.Obsolete("This constructor has been deprecated.  Please use new FileStream(SafeFileHandle handle, FileAccess access, int bufferSize) instead, and optionally make a new SafeFileHandle with ownsHandle=false if needed.  https://go.microsoft.com/fwlink/?linkid=14202")]
public FileStream (IntPtr handle, System.IO.FileAccess access, bool ownsHandle, int bufferSize);
new System.IO.FileStream : nativeint * System.IO.FileAccess * bool * int -> System.IO.FileStream
Public Sub New (handle As IntPtr, access As FileAccess, ownsHandle As Boolean, bufferSize As Integer)

Parametri

handle
IntPtr

Handle di file relativo al file che sarà incapsulato nell'oggetto FileStream.A file handle for the file that this FileStream object will encapsulate.

access
FileAccess

Combinazione bit per bit dei valori di enumerazione, che imposta le proprietà CanRead e CanWrite dell'oggetto FileStream.A bitwise combination of the enumeration values that sets the CanRead and CanWrite properties of the FileStream object.

ownsHandle
Boolean

true se l'handle del file è di proprietà dell'istanza di FileStream; in caso contrario, false.true if the file handle will be owned by this FileStream instance; otherwise, false.

bufferSize
Int32

Valore positivo Int32 maggiore di 0 che indica la dimensione del buffer.A positive Int32 value greater than 0 indicating the buffer size. La dimensione del buffer predefinita è 4096.The default buffer size is 4096.

Attributi

Eccezioni

bufferSize è negativo.bufferSize is negative.

Si è verificato un errore di I/O, ad esempio un errore del disco.An I/O error, such as a disk error, occurred.

-oppure--or-

Il flusso è stato chiuso.The stream has been closed.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

L'oggetto access richiesto non è consentito dal sistema operativo per l'handle di file specificato, ad esempio quando access è Write o ReadWrite e l'handle di file è impostato per l'accesso in sola lettura.The access requested is not permitted by the operating system for the specified file handle, such as when access is Write or ReadWrite and the file handle is set for read-only access.

Commenti

All'oggetto FileStream viene assegnato l'accesso specificato al file.The FileStream object is given the specified access to the file. La proprietà dell'handle sarà specificata.The ownership of the handle will be as specified. Se questo FileStream è proprietario dell'handle, una chiamata al metodo Close chiuderà anche l'handle.If this FileStream owns the handle, a call to the Close method will also close the handle. In particolare, il numero di handle del file viene decrementato.In particular, the file's handle count is decremented. All'oggetto FileStream vengono assegnate le dimensioni del buffer specificate.The FileStream object is given the specified buffer size.

FileStream presuppone che disponga di controllo esclusivo sull'handle.FileStream assumes that it has exclusive control over the handle. La lettura, la scrittura o la ricerca mentre un FileStream contiene anche un handle può causare il danneggiamento dei dati.Reading, writing, or seeking while a FileStream is also holding a handle could result in data corruption. Per la sicurezza dei dati, chiamare Flush prima di usare l'handle ed evitare di chiamare metodi diversi da Close dopo aver completato l'utilizzo dell'handle.For data safety, call Flush before using the handle, and avoid calling any methods other than Close after you are done using the handle. In alternativa, leggere e scrivere nell'handle prima di chiamare questo costruttore FileStream.Alternately, read and write to the handle before calling this FileStream constructor.

FileShare.Read è l'impostazione predefinita per i costruttori FileStream senza un parametro di FileShare.FileShare.Read is the default for those FileStream constructors without a FileShare parameter.

Attenzione

Quando si compila un set di caratteri con una particolare impostazione culturale e si recuperano gli stessi caratteri con un'impostazione culturale diversa, i caratteri potrebbero non essere interpretabili e potrebbe causare la generazione di un'eccezione.When you compile a set of characters with a particular cultural setting and retrieve those same characters with a different cultural setting, the characters might not be interpretable, and could cause an exception to be thrown.

Per un elenco delle operazioni comuni di file e directory, vedere attività di I/O comuni.For a list of common file and directory operations, see Common I/O Tasks.

Sicurezza

FileIOPermission
per la lettura, la scrittura e l'accodamento ai file.for reading, writing, and appending to files. Enumerazioni associate: Read, Writee Append.Associated enumerations: Read, Write, and Append.

Vedi anche

FileStream(String, FileMode)

Inizializza una nuova istanza della classe FileStream con il percorso e la modalità di creazione specificati.Initializes a new instance of the FileStream class with the specified path and creation mode.

public:
 FileStream(System::String ^ path, System::IO::FileMode mode);
public FileStream (string path, System.IO.FileMode mode);
new System.IO.FileStream : string * System.IO.FileMode -> System.IO.FileStream
Public Sub New (path As String, mode As FileMode)

Parametri

path
String

Percorso relativo o assoluto per il file che sarà incapsulato dall'oggetto FileStream corrente.A relative or absolute path for the file that the current FileStream object will encapsulate.

mode
FileMode

Uno dei valori di enumerazione che determina come aprire o creare il file.One of the enumeration values that determines how to open or create the file.

Eccezioni

path è una stringa vuota (""), contiene solo spazi vuoti oppure contiene uno o più caratteri non validi.path is an empty string (""), contains only white space, or contains one or more invalid characters.

-oppure--or- path fa riferimento a dispositivi non basati su file come "con:", "com1:", "lpt1:" e così via in un ambiente NTFS.path refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in an NTFS environment.

path fa riferimento a dispositivi non basati su file come "con:", "com1:", "lpt1:" e così via in un ambiente non NTFS.path refers to a non-file device, such as "con:", "com1:", "lpt1:", etc. in a non-NTFS environment.

path è null.path is null.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

Il file non è stato trovato, ad esempio se mode è FileMode.Truncate o FileMode.Open e il file specificato da path non esiste.The file cannot be found, such as when mode is FileMode.Truncate or FileMode.Open, and the file specified by path does not exist. È necessario che il file sia già disponibile in queste modalità.The file must already exist in these modes.

path specifica un file di sola lettura.path specifies a file that is read-only.

Si è verificato un errore di I/O, ad esempio quando si specifica FileMode.CreateNew e il file specificato da path è già presente.An I/O error, such as specifying FileMode.CreateNew when the file specified by path already exists, occurred.

-oppure--or- Il flusso è stato chiuso.The stream has been closed.

Il percorso specificato non è valido, ad esempio si trova in un'unità non mappata.The specified path is invalid, such as being on an unmapped drive.

Il percorso specificato, il nome file o entrambi superano la lunghezza massima definita dal sistema.The specified path, file name, or both exceed the system-defined maximum length.

mode contiene un valore non valido.mode contains an invalid value.

Esempi

Nell'esempio di codice seguente viene illustrato come scrivere dati in un file, byte per byte e quindi verificare che i dati siano stati scritti correttamente.The following code example shows how to write data to a file, byte by byte, and then verify that the data was written correctly.

using namespace System;
using namespace System::IO;
int main()
{
   String^ fileName =  "Test@##@.dat";
   
   // Create random data to write to the file.
   array<Byte>^dataArray = gcnew array<Byte>(100000);
   (gcnew Random)->NextBytes( dataArray );
   FileStream^ fileStream = gcnew FileStream( fileName,FileMode::Create );
   try
   {
      
      // Write the data to the file, byte by byte.
      for ( int i = 0; i < dataArray->Length; i++ )
      {
         fileStream->WriteByte( dataArray[ i ] );

      }
      
      // Set the stream position to the beginning of the file.
      fileStream->Seek( 0, SeekOrigin::Begin );
      
      // Read and verify the data.
      for ( int i = 0; i < fileStream->Length; i++ )
      {
         if ( dataArray[ i ] != fileStream->ReadByte() )
         {
            Console::WriteLine( "Error writing data." );
            return  -1;
         }

      }
      Console::WriteLine( "The data was written to {0} "
      "and verified.", fileStream->Name );
   }
   finally
   {
      fileStream->Close();
   }

}

using System;
using System.IO;

class FStream
{
    static void Main()
    {
        const string fileName = "Test#@@#.dat";

        // Create random data to write to the file.
        byte[] dataArray = new byte[100000];
        new Random().NextBytes(dataArray);

        using(FileStream  
            fileStream = new FileStream(fileName, FileMode.Create))
        {
            // Write the data to the file, byte by byte.
            for(int i = 0; i < dataArray.Length; i++)
            {
                fileStream.WriteByte(dataArray[i]);
            }

            // Set the stream position to the beginning of the file.
            fileStream.Seek(0, SeekOrigin.Begin);

            // Read and verify the data.
            for(int i = 0; i < fileStream.Length; i++)
            {
                if(dataArray[i] != fileStream.ReadByte())
                {
                    Console.WriteLine("Error writing data.");
                    return;
                }
            }
            Console.WriteLine("The data was written to {0} " +
                "and verified.", fileStream.Name);
        }
    }
}
Imports System.IO
Imports System.Text

Class FStream

    Shared Sub Main()

        Const fileName As String = "Test#@@#.dat"

        ' Create random data to write to the file.
        Dim dataArray(100000) As Byte
        Dim randomGenerator As New Random()
        randomGenerator.NextBytes(dataArray)

        Dim fileStream As FileStream = _
            new FileStream(fileName, FileMode.Create)
        Try

            ' Write the data to the file, byte by byte.
            For i As Integer = 0 To dataArray.Length - 1
                fileStream.WriteByte(dataArray(i))
            Next i

            ' Set the stream position to the beginning of the stream.
            fileStream.Seek(0, SeekOrigin.Begin)

            ' Read and verify the data.
            For i As Integer = 0 To _
                CType(fileStream.Length, Integer) - 1

                If dataArray(i) <> fileStream.ReadByte() Then
                    Console.WriteLine("Error writing data.")
                    Return
                End If
            Next i
            Console.WriteLine("The data was written to {0} " & _
                "and verified.", fileStream.Name)
        Finally
            fileStream.Close()
        End Try
    
    End Sub
End Class

Commenti

Il .NET Framework non supporta l'accesso diretto ai dischi fisici tramite percorsi che sono nomi di dispositivo, ad esempio "\\.\PHYSICALDRIVE0".The .NET Framework does not support direct access to physical disks through paths that are device names, such as "\\.\PHYSICALDRIVE0 ".

Il path parametro può essere un nome di file, incluso un file in una condivisione Universal Naming Convention (UNC).The path parameter can be a file name, including a file on a Universal Naming Convention (UNC) share.

Al costruttore viene assegnato l'accesso in lettura/scrittura al file e viene aperta la condivisione dell'accesso in lettura (ovvero, le richieste di apertura del file per la scrittura da parte di questo o un altro processo avrà esito negativo fino a quando l'oggetto FileStream non è stato chiuso, ma i tentativi di lettura avranno esito positivo).The constructor is given read/write access to the file, and it is opened sharing Read access (that is, requests to open the file for writing by this or another process will fail until the FileStream object has been closed, but read attempts will succeed).

Non è possibile usare questo costruttore per aprire i file di sola lettura. è invece necessario usare un costruttore che accetta un parametro di FileAccess con il valore impostato su FileAccess.Read.You cannot use this constructor to open read-only files; instead, you must use a constructor that accepts a FileAccess parameter with the value set to FileAccess.Read.

Le dimensioni del buffer sono impostate sulle dimensioni predefinite di 4096 byte (4 KB).The buffer size is set to the default size of 4096 bytes (4 KB).

Nota

non è necessario che path sia un file archiviato su disco; può trattarsi di qualsiasi parte di un sistema che supporta l'accesso tramite flussi.path is not required to be a file stored on disk; it can be any part of a system that supports access through streams. Ad esempio, a seconda del sistema, questa classe può accedere a un dispositivo fisico.For example, depending on the system, this class can access a physical device.

CanSeek è true per tutti gli oggetti FileStream che incapsulano i file.CanSeek is true for all FileStream objects that encapsulate files. Se path indica un dispositivo che non supporta la ricerca, la proprietà CanSeek sul FileStream risultante viene false.If path indicates a device that does not support seeking, the CanSeek property on the resulting FileStream is false. Per altre informazioni, vedere CanSeek.For additional information, see CanSeek.

FileShare.Read è l'impostazione predefinita per i costruttori FileStream senza un parametro di FileShare.FileShare.Read is the default for those FileStream constructors without a FileShare parameter.

Per i costruttori senza un parametro di FileAccess, se il mode parametro è impostato su Append, Write è l'accesso predefinito.For constructors without a FileAccess parameter, if the mode parameter is set to Append, Write is the default access. In caso contrario, l'accesso viene impostato su ReadWrite.Otherwise, the access is set to ReadWrite.

Attenzione

Quando si compila un set di caratteri con una particolare impostazione culturale e si recuperano gli stessi caratteri con un'impostazione culturale diversa, i caratteri potrebbero non essere interpretabili e potrebbe causare la generazione di un'eccezione.When you compile a set of characters with a particular cultural setting and retrieve those same characters with a different cultural setting, the characters might not be interpretable, and could cause an exception to be thrown.

Per un elenco delle operazioni comuni di file e directory, vedere attività di I/O comuni.For a list of common file and directory operations, see Common I/O Tasks.

Sicurezza

FileIOPermission
per la lettura, la scrittura e l'accodamento ai file.for reading, writing, and appending to files. Enumerazioni associate: Read, Writee Append.Associated enumerations: Read, Write, and Append.

Vedi anche

FileStream(IntPtr, FileAccess)

Avviso

Questa API è ora obsoleta.

Inizializza una nuova istanza della classe FileStream per l'handle di file specificato, con l'autorizzazione di lettura/scrittura specificata.Initializes a new instance of the FileStream class for the specified file handle, with the specified read/write permission.

public:
 FileStream(IntPtr handle, System::IO::FileAccess access);
[System.Obsolete("Use FileStream(SafeFileHandle handle, FileAccess access) instead")]
[System.Obsolete("This constructor has been deprecated.  Please use new FileStream(SafeFileHandle handle, FileAccess access) instead.  https://go.microsoft.com/fwlink/?linkid=14202")]
[System.Obsolete("This constructor has been deprecated.  Please use new FileStream(SafeFileHandle handle, FileAccess access) instead.  https://go.microsoft.com/fwlink/?linkid=14202")]
public FileStream (IntPtr handle, System.IO.FileAccess access);
new System.IO.FileStream : nativeint * System.IO.FileAccess -> System.IO.FileStream
Public Sub New (handle As IntPtr, access As FileAccess)

Parametri

handle
IntPtr

Handle di file relativo al file che sarà incapsulato nell'oggetto FileStream corrente.A file handle for the file that the current FileStream object will encapsulate.

access
FileAccess

Combinazione bit per bit dei valori di enumerazione, che imposta le proprietà CanRead e CanWrite dell'oggetto FileStream.A bitwise combination of the enumeration values that sets the CanRead and CanWrite properties of the FileStream object.

Attributi

Eccezioni

access non è un campo di FileAccess.access is not a field of FileAccess.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

Si è verificato un errore di I/O, ad esempio un errore del disco.An I/O error, such as a disk error, occurred.

-oppure--or-

Il flusso è stato chiuso.The stream has been closed.

L'oggetto access richiesto non è consentito dal sistema operativo per l'handle di file specificato, ad esempio quando access è Write o ReadWrite e l'handle di file è impostato per l'accesso in sola lettura.The access requested is not permitted by the operating system for the specified file handle, such as when access is Write or ReadWrite and the file handle is set for read-only access.

Commenti

Quando viene chiamato Close, viene chiuso anche l'handle e il numero di handle del file viene decrementato.When Close is called, the handle is also closed and the file's handle count is decremented.

FileStream presuppone che disponga di controllo esclusivo sull'handle.FileStream assumes that it has exclusive control over the handle. La lettura, la scrittura o la ricerca mentre un FileStream contiene anche un handle può causare il danneggiamento dei dati.Reading, writing, or seeking while a FileStream is also holding a handle could result in data corruption. Per la sicurezza dei dati, chiamare Flush prima di usare l'handle ed evitare di chiamare metodi diversi da Close dopo aver completato l'utilizzo dell'handle.For data safety, call Flush before using the handle, and avoid calling any methods other than Close after you are done using the handle.

Attenzione

Quando si compila un set di caratteri con una particolare impostazione culturale e si recuperano gli stessi caratteri con un'impostazione culturale diversa, i caratteri potrebbero non essere interpretabili e potrebbe causare la generazione di un'eccezione.When you compile a set of characters with a particular cultural setting and retrieve those same characters with a different cultural setting, the characters might not be interpretable, and could cause an exception to be thrown.

FileShare.Read è l'impostazione predefinita per i costruttori FileStream senza un parametro di FileShare.FileShare.Read is the default for those FileStream constructors without a FileShare parameter.

Per un elenco delle operazioni comuni di file e directory, vedere attività di I/O comuni.For a list of common file and directory operations, see Common I/O Tasks.

Sicurezza

FileIOPermission
per la lettura, la scrittura e l'accodamento ai file.for reading, writing, and appending to files. Enumerazioni associate: Read, Writee Append.Associated enumerations: Read, Write, and Append.

Vedi anche

Si applica a