IsolatedStorageFileStream Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Macht eine Datei im isolierten Speicher verfügbar.
public ref class IsolatedStorageFileStream : System::IO::Stream
public ref class IsolatedStorageFileStream : System::IO::FileStream
public class IsolatedStorageFileStream : System.IO.Stream
public class IsolatedStorageFileStream : System.IO.FileStream
[System.Runtime.InteropServices.ComVisible(true)]
public class IsolatedStorageFileStream : System.IO.FileStream
type IsolatedStorageFileStream = class
inherit Stream
type IsolatedStorageFileStream = class
inherit FileStream
[<System.Runtime.InteropServices.ComVisible(true)>]
type IsolatedStorageFileStream = class
inherit FileStream
Public Class IsolatedStorageFileStream
Inherits Stream
Public Class IsolatedStorageFileStream
Inherits FileStream
- Vererbung
- Vererbung
- Attribute
Beispiele
Die folgende Konsolenanwendung veranschaulicht, wie Sie und IsolatedStorageFileStream verwenden IsolatedStorageFile können, um Daten in eine datei mit isoliertem Speicher zu schreiben. Der Benutzer wird aufgefordert, sich anzumelden. Wenn der Benutzer ein neuer Benutzer ist, werden eine News-URL und eine Sport-URL als persönliche Einstellungen in Isolierter Speicher aufgezeichnet. Wenn der Benutzer ein zurückkehrender Benutzer ist, werden die aktuellen Einstellungen des Benutzers angezeigt. Die codebeispiele, die in diesem Namespace verwendet werden, werden im Kontext dieser Beispielanwendung dargestellt. Sie können das HilfsprogrammStoreadm.exe (Isolated Storage Tool) verwenden, um die mit dieser Konsolenanwendung erstellten isolierten Speicherdateien auflisten und zu entfernen.
// This sample demonstrates methods of classes found in the System.IO IsolatedStorage namespace.
using namespace System;
using namespace System::IO;
using namespace System::IO::IsolatedStorage;
using namespace System::Security::Policy;
using namespace System::Security::Permissions;
public ref class LoginPrefs
{
private:
String^ userName;
String^ newsUrl;
String^ sportsUrl;
bool newPrefs;
public:
[SecurityPermissionAttribute(SecurityAction::Demand, Flags=SecurityPermissionFlag::UnmanagedCode)]
bool GetPrefsForUser()
{
try
{
// Retrieve an IsolatedStorageFile for the current Domain and Assembly.
IsolatedStorageFile^ isoFile = IsolatedStorageFile::GetStore( static_cast<IsolatedStorageScope>(IsolatedStorageScope::User | IsolatedStorageScope::Assembly | IsolatedStorageScope::Domain), (Type^)nullptr, nullptr );
IsolatedStorageFileStream^ isoStream = gcnew IsolatedStorageFileStream( this->userName,FileMode::Open,FileAccess::ReadWrite,isoFile );
// farThe code executes to this point only if a file corresponding to the username exists.
// Though you can perform operations on the stream, you cannot get a handle to the file.
try
{
IntPtr aFileHandle = isoStream->Handle;
Console::WriteLine( "A pointer to a file handle has been obtained. {0} {1}", aFileHandle, aFileHandle.GetHashCode() );
}
catch ( Exception^ e )
{
// Handle the exception.
Console::WriteLine( "Expected exception" );
Console::WriteLine( e->ToString() );
}
StreamReader^ reader = gcnew StreamReader( isoStream );
// Read the data.
this->NewsUrl = reader->ReadLine();
this->SportsUrl = reader->ReadLine();
reader->Close();
isoFile->Close();
isoStream->Close();
return false;
}
catch ( Exception^ e )
{
// Expected exception if a file cannot be found. This indicates that we have a new user.
String^ errorMessage = e->ToString();
return true;
}
}
bool GetIsoStoreInfo()
{
// Get a User store with type evidence for the current Domain and the Assembly.
IsolatedStorageFile^ isoFile = IsolatedStorageFile::GetStore( static_cast<IsolatedStorageScope>(IsolatedStorageScope::User | IsolatedStorageScope::Assembly | IsolatedStorageScope::Domain), System::Security::Policy::Url::typeid, System::Security::Policy::Url::typeid );
array<String^>^dirNames = isoFile->GetDirectoryNames( "*" );
array<String^>^fileNames = isoFile->GetFileNames( "*" );
// List directories currently in this Isolated Storage.
if ( dirNames->Length > 0 )
{
for ( int i = 0; i < dirNames->Length; ++i )
{
Console::WriteLine( "Directory Name: {0}", dirNames[ i ] );
}
}
// List the files currently in this Isolated Storage.
// The list represents all users who have personal preferences stored for this application.
if ( fileNames->Length > 0 )
{
for ( int i = 0; i < fileNames->Length; ++i )
{
Console::WriteLine( "File Name: {0}", fileNames[ i ] );
}
}
isoFile->Close();
return true;
}
double SetPrefsForUser()
{
try
{
IsolatedStorageFile^ isoFile;
isoFile = IsolatedStorageFile::GetUserStoreForDomain();
// Open or create a writable file.
IsolatedStorageFileStream^ isoStream = gcnew IsolatedStorageFileStream( this->userName,FileMode::OpenOrCreate,FileAccess::Write,isoFile );
StreamWriter^ writer = gcnew StreamWriter( isoStream );
writer->WriteLine( this->NewsUrl );
writer->WriteLine( this->SportsUrl );
// Calculate the amount of space used to record the user's preferences.
double d = isoFile->CurrentSize / isoFile->MaximumSize;
Console::WriteLine( "CurrentSize = {0}", isoFile->CurrentSize.ToString() );
Console::WriteLine( "MaximumSize = {0}", isoFile->MaximumSize.ToString() );
writer->Close();
isoFile->Close();
isoStream->Close();
return d;
}
catch ( Exception^ e )
{
// Add code here to handle the exception.
Console::WriteLine( e->ToString() );
return 0.0;
}
}
void DeleteFiles()
{
try
{
IsolatedStorageFile^ isoFile = IsolatedStorageFile::GetStore( static_cast<IsolatedStorageScope>(IsolatedStorageScope::User | IsolatedStorageScope::Assembly | IsolatedStorageScope::Domain), System::Security::Policy::Url::typeid, System::Security::Policy::Url::typeid );
array<String^>^dirNames = isoFile->GetDirectoryNames( "*" );
array<String^>^fileNames = isoFile->GetFileNames( "*" );
// List the files currently in this Isolated Storage.
// The list represents all users who have personal
// preferences stored for this application.
if ( fileNames->Length > 0 )
{
for ( int i = 0; i < fileNames->Length; ++i )
{
//Delete the files.
isoFile->DeleteFile( fileNames[ i ] );
}
fileNames = isoFile->GetFileNames( "*" );
}
isoFile->Close();
}
catch ( Exception^ e )
{
Console::WriteLine( e->ToString() );
}
}
// This method deletes directories in the specified Isolated Storage, after first
// deleting the files they contain. In this example, the Archive directory is deleted.
// There should be no other directories in this Isolated Storage.
void DeleteDirectories()
{
try
{
IsolatedStorageFile^ isoFile = IsolatedStorageFile::GetStore( static_cast<IsolatedStorageScope>(IsolatedStorageScope::User | IsolatedStorageScope::Assembly | IsolatedStorageScope::Domain), System::Security::Policy::Url::typeid, System::Security::Policy::Url::typeid );
array<String^>^dirNames = isoFile->GetDirectoryNames( "*" );
array<String^>^fileNames = isoFile->GetFileNames( "Archive\\*" );
// Delete the current files within the Archive directory.
if ( fileNames->Length > 0 )
{
for ( int i = 0; i < fileNames->Length; ++i )
{
//delete files
isoFile->DeleteFile( String::Concat("Archive\\", fileNames[ i ]) );
}
fileNames = isoFile->GetFileNames( "Archive\\*" );
}
if ( dirNames->Length > 0 )
{
for ( int i = 0; i < dirNames->Length; ++i )
{
// Delete the Archive directory.
isoFile->DeleteDirectory( dirNames[ i ] );
}
}
dirNames = isoFile->GetDirectoryNames( "*" );
isoFile->Remove();
}
catch ( Exception^ e )
{
Console::WriteLine( e->ToString() );
}
}
double SetNewPrefsForUser()
{
try
{
Byte inputChar;
IsolatedStorageFile^ isoFile = IsolatedStorageFile::GetStore( static_cast<IsolatedStorageScope>(IsolatedStorageScope::User | IsolatedStorageScope::Assembly | IsolatedStorageScope::Domain), System::Security::Policy::Url::typeid, System::Security::Policy::Url::typeid );
// If this is not a new user, archive the old preferences and
// overwrite them using the new preferences.
if ( !this->NewPrefs )
{
if ( isoFile->GetDirectoryNames( "Archive" )->Length == 0 )
isoFile->CreateDirectory( "Archive" );
else
{
// This is the stream to which data will be written.
IsolatedStorageFileStream^ source = gcnew IsolatedStorageFileStream( this->userName,FileMode::OpenOrCreate,isoFile );
// This is the stream from which data will be read.
Console::WriteLine( "Is the source file readable? {0}", (source->CanRead ? (String^)"true" : "false") );
Console::WriteLine( "Creating new IsolatedStorageFileStream for Archive." );
// Open or create a writable file.
IsolatedStorageFileStream^ target = gcnew IsolatedStorageFileStream( String::Concat("Archive\\",this->userName),FileMode::OpenOrCreate,FileAccess::Write,FileShare::Write,isoFile );
Console::WriteLine( "Is the target file writable? {0}", (target->CanWrite ? (String^)"true" : "false") );
// Stream the old file to a new file in the Archive directory.
if ( source->IsAsync && target->IsAsync )
{
// IsolatedStorageFileStreams cannot be asynchronous. However, you
// can use the asynchronous BeginRead and BeginWrite functions
// with some possible performance penalty.
Console::WriteLine( "IsolatedStorageFileStreams cannot be asynchronous." );
}
else
{
Console::WriteLine( "Writing data to the new file." );
while ( source->Position < source->Length )
{
inputChar = (Byte)source->ReadByte();
target->WriteByte( (Byte)source->ReadByte() );
}
// Determine the size of the IsolatedStorageFileStream
// by checking its Length property.
Console::WriteLine( "Total Bytes Read: {0}", source->Length.ToString() );
}
// After you have read and written to the streams, close them.
target->Close();
source->Close();
}
}
// Open or create a writable file, no larger than 10k
IsolatedStorageFileStream^ isoStream = gcnew IsolatedStorageFileStream( this->userName,FileMode::OpenOrCreate,FileAccess::Write,FileShare::Write,10240,isoFile );
isoStream->Position = 0; // Position to overwrite the old data.
StreamWriter^ writer = gcnew StreamWriter( isoStream );
// Update the data based on the new inputs.
writer->WriteLine( this->NewsUrl );
writer->WriteLine( this->SportsUrl );
// Calculate the amount of space used to record this user's preferences.
double d = isoFile->CurrentSize / isoFile->MaximumSize;
Console::WriteLine( "CurrentSize = {0}", isoFile->CurrentSize.ToString() );
Console::WriteLine( "MaximumSize = {0}", isoFile->MaximumSize.ToString() );
// StreamWriter.Close implicitly closes isoStream.
writer->Close();
isoFile->Close();
return d;
}
catch ( Exception^ e )
{
Console::WriteLine( e->ToString() );
return 0.0;
}
}
LoginPrefs( String^ aUserName )
{
userName = aUserName;
newPrefs = GetPrefsForUser();
}
property String^ NewsUrl
{
String^ get()
{
return newsUrl;
}
void set( String^ value )
{
newsUrl = value;
}
}
property String^ SportsUrl
{
String^ get()
{
return sportsUrl;
}
void set( String^ value )
{
sportsUrl = value;
}
}
property bool NewPrefs
{
bool get()
{
return newPrefs;
}
}
};
void GatherInfoFromUser( LoginPrefs^ lp )
{
Console::WriteLine( "Please enter the URL of your news site." );
lp->NewsUrl = Console::ReadLine();
Console::WriteLine( "Please enter the URL of your sports site." );
lp->SportsUrl = Console::ReadLine();
}
int main()
{
// Prompt the user for their username.
Console::WriteLine( "Enter your login ID:" );
// Does no error checking.
LoginPrefs^ lp = gcnew LoginPrefs( Console::ReadLine() );
if ( lp->NewPrefs )
{
Console::WriteLine( "Please set preferences for a new user." );
GatherInfoFromUser( lp );
// Write the new preferences to storage.
double percentUsed = lp->SetPrefsForUser();
Console::WriteLine( "Your preferences have been written. Current space used is {0}%", percentUsed );
}
else
{
Console::WriteLine( "Welcome back." );
Console::WriteLine( "Your preferences have expired, please reset them." );
GatherInfoFromUser( lp );
lp->SetNewPrefsForUser();
Console::WriteLine( "Your news site has been set to {0}\n and your sports site has been set to {1}.", lp->NewsUrl, lp->SportsUrl );
}
lp->GetIsoStoreInfo();
Console::WriteLine( "Enter 'd' to delete the IsolatedStorage files and exit, or press any other key to exit without deleting files." );
String^ consoleInput = Console::ReadLine();
if ( consoleInput->Equals( "d" ) )
{
lp->DeleteFiles();
lp->DeleteDirectories();
}
}
// This sample demonstrates methods of classes found in the System.IO IsolatedStorage namespace.
using System;
using System.IO;
using System.IO.IsolatedStorage;
using System.Security.Policy;
using Microsoft.Win32.SafeHandles;
[assembly: CLSCompliantAttribute(true)]
class ConsoleApp
{
[STAThread]
static void Main(string[] args)
{
// Prompt the user for their username.
Console.WriteLine("Login:");
// Does no error checking.
LoginPrefs lp = new LoginPrefs(Console.ReadLine());
if (lp.NewPrefs)
{
Console.WriteLine("Please set preferences for a new user.");
GatherInfoFromUser(lp);
// Write the new preferences to storage.
double percentUsed = lp.SetPrefsForUser();
Console.WriteLine("Your preferences have been written. Current space used is " + percentUsed.ToString() + " %");
}
else
{
Console.WriteLine("Welcome back.");
Console.WriteLine("Your preferences have expired, please reset them.");
GatherInfoFromUser(lp);
lp.SetNewPrefsForUser();
Console.WriteLine("Your news site has been set to {0}\n and your sports site has been set to {1}.", lp.NewsUrl, lp.SportsUrl);
}
lp.GetIsoStoreInfo();
Console.WriteLine("Enter 'd' to delete the IsolatedStorage files and exit, or press any other key to exit without deleting files.");
string consoleInput = Console.ReadLine();
if (consoleInput.ToLower() == "d")
{
lp.DeleteFiles();
lp.DeleteDirectories();
}
}
static void GatherInfoFromUser(LoginPrefs lp)
{
Console.WriteLine("Please enter the URL of your news site.");
lp.NewsUrl = Console.ReadLine();
Console.WriteLine("Please enter the URL of your sports site.");
lp.SportsUrl = Console.ReadLine();
}
}
public class LoginPrefs
{
public LoginPrefs(string myUserName)
{
userName = myUserName;
myNewPrefs = GetPrefsForUser();
}
string userName;
string myNewsUrl;
public string NewsUrl
{
get { return myNewsUrl; }
set { myNewsUrl = value; }
}
string mySportsUrl;
public string SportsUrl
{
get { return mySportsUrl; }
set { mySportsUrl = value; }
}
bool myNewPrefs;
public bool NewPrefs
{
get { return myNewPrefs; }
}
private bool GetPrefsForUser()
{
try
{
// Retrieve an IsolatedStorageFile for the current Domain and Assembly.
IsolatedStorageFile isoFile =
IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
IsolatedStorageScope.Assembly |
IsolatedStorageScope.Domain,
null,
null);
IsolatedStorageFileStream isoStream =
new IsolatedStorageFileStream("substituteUsername",
System.IO.FileMode.Open,
System.IO.FileAccess.Read,
System.IO.FileShare.Read);
// The code executes to this point only if a file corresponding to the username exists.
// Though you can perform operations on the stream, you cannot get a handle to the file.
try
{
SafeFileHandle aFileHandle = isoStream.SafeFileHandle;
Console.WriteLine("A pointer to a file handle has been obtained. "
+ aFileHandle.ToString() + " "
+ aFileHandle.GetHashCode());
}
catch (Exception e)
{
// Handle the exception.
Console.WriteLine("Expected exception");
Console.WriteLine(e);
}
StreamReader reader = new StreamReader(isoStream);
// Read the data.
this.NewsUrl = reader.ReadLine();
this.SportsUrl = reader.ReadLine();
reader.Close();
isoFile.Close();
return false;
}
catch (System.IO.FileNotFoundException)
{
// Expected exception if a file cannot be found. This indicates that we have a new user.
return true;
}
}
public bool GetIsoStoreInfo()
{
// Get a User store with type evidence for the current Domain and the Assembly.
IsolatedStorageFile isoFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
IsolatedStorageScope.Assembly |
IsolatedStorageScope.Domain,
typeof(System.Security.Policy.Url),
typeof(System.Security.Policy.Url));
String[] dirNames = isoFile.GetDirectoryNames("*");
String[] fileNames = isoFile.GetFileNames("*");
// List directories currently in this Isolated Storage.
if (dirNames.Length > 0)
{
for (int i = 0; i < dirNames.Length; ++i)
{
Console.WriteLine("Directory Name: " + dirNames[i]);
}
}
// List the files currently in this Isolated Storage.
// The list represents all users who have personal preferences stored for this application.
if (fileNames.Length > 0)
{
for (int i = 0; i < fileNames.Length; ++i)
{
Console.WriteLine("File Name: " + fileNames[i]);
}
}
isoFile.Close();
return true;
}
public double SetPrefsForUser()
{
try
{
IsolatedStorageFile isoFile;
isoFile = IsolatedStorageFile.GetUserStoreForDomain();
// Open or create a writable file.
IsolatedStorageFileStream isoStream =
new IsolatedStorageFileStream(this.userName,
FileMode.OpenOrCreate,
FileAccess.Write,
isoFile);
StreamWriter writer = new StreamWriter(isoStream);
writer.WriteLine(this.NewsUrl);
writer.WriteLine(this.SportsUrl);
// Calculate the amount of space used to record the user's preferences.
double d = isoFile.CurrentSize / isoFile.MaximumSize;
Console.WriteLine("CurrentSize = " + isoFile.CurrentSize.ToString());
Console.WriteLine("MaximumSize = " + isoFile.MaximumSize.ToString());
// StreamWriter.Close implicitly closes isoStream.
writer.Close();
isoFile.Dispose();
isoFile.Close();
return d;
}
catch (IsolatedStorageException ex)
{
// Add code here to handle the exception.
Console.WriteLine(ex);
return 0.0;
}
}
public void DeleteFiles()
{
try
{
IsolatedStorageFile isoFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
IsolatedStorageScope.Assembly |
IsolatedStorageScope.Domain,
typeof(System.Security.Policy.Url),
typeof(System.Security.Policy.Url));
String[] dirNames = isoFile.GetDirectoryNames("*");
String[] fileNames = isoFile.GetFileNames("*");
// List the files currently in this Isolated Storage.
// The list represents all users who have personal
// preferences stored for this application.
if (fileNames.Length > 0)
{
for (int i = 0; i < fileNames.Length; ++i)
{
// Delete the files.
isoFile.DeleteFile(fileNames[i]);
}
// Confirm that no files remain.
fileNames = isoFile.GetFileNames("*");
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
// This method deletes directories in the specified Isolated Storage, after first
// deleting the files they contain. In this example, the Archive directory is deleted.
// There should be no other directories in this Isolated Storage.
public void DeleteDirectories()
{
try
{
IsolatedStorageFile isoFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
IsolatedStorageScope.Assembly |
IsolatedStorageScope.Domain,
typeof(System.Security.Policy.Url),
typeof(System.Security.Policy.Url));
String[] dirNames = isoFile.GetDirectoryNames("*");
String[] fileNames = isoFile.GetFileNames("Archive\\*");
// Delete all the files currently in the Archive directory.
if (fileNames.Length > 0)
{
for (int i = 0; i < fileNames.Length; ++i)
{
// Delete the files.
isoFile.DeleteFile("Archive\\" + fileNames[i]);
}
// Confirm that no files remain.
fileNames = isoFile.GetFileNames("Archive\\*");
}
if (dirNames.Length > 0)
{
for (int i = 0; i < dirNames.Length; ++i)
{
// Delete the Archive directory.
}
}
dirNames = isoFile.GetDirectoryNames("*");
isoFile.Remove();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
public double SetNewPrefsForUser()
{
try
{
byte inputChar;
IsolatedStorageFile isoFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User |
IsolatedStorageScope.Assembly |
IsolatedStorageScope.Domain,
typeof(System.Security.Policy.Url),
typeof(System.Security.Policy.Url));
// If this is not a new user, archive the old preferences and
// overwrite them using the new preferences.
if (!this.myNewPrefs)
{
if (isoFile.GetDirectoryNames("Archive").Length == 0)
{
isoFile.CreateDirectory("Archive");
}
else
{
IsolatedStorageFileStream source =
new IsolatedStorageFileStream(this.userName, FileMode.OpenOrCreate,
isoFile);
// This is the stream from which data will be read.
Console.WriteLine("Is the source file readable? " + (source.CanRead ? "true" : "false"));
Console.WriteLine("Creating new IsolatedStorageFileStream for Archive.");
// Open or create a writable file.
IsolatedStorageFileStream target =
new IsolatedStorageFileStream("Archive\\ " + this.userName,
FileMode.OpenOrCreate,
FileAccess.Write,
FileShare.Write,
isoFile);
Console.WriteLine("Is the target file writable? " + (target.CanWrite ? "true" : "false"));
// Stream the old file to a new file in the Archive directory.
if (source.IsAsync && target.IsAsync)
{
// IsolatedStorageFileStreams cannot be asynchronous. However, you
// can use the asynchronous BeginRead and BeginWrite functions
// with some possible performance penalty.
Console.WriteLine("IsolatedStorageFileStreams cannot be asynchronous.");
}
else
{
Console.WriteLine("Writing data to the new file.");
while (source.Position < source.Length)
{
inputChar = (byte)source.ReadByte();
target.WriteByte(inputChar);
}
// Determine the size of the IsolatedStorageFileStream
// by checking its Length property.
Console.WriteLine("Total Bytes Read: " + source.Length);
}
// After you have read and written to the streams, close them.
target.Close();
source.Close();
}
}
// Open or create a writable file with a maximum size of 10K.
IsolatedStorageFileStream isoStream =
new IsolatedStorageFileStream(this.userName,
FileMode.OpenOrCreate,
FileAccess.Write,
FileShare.Write,
10240,
isoFile);
isoStream.Position = 0; // Position to overwrite the old data.
StreamWriter writer = new StreamWriter(isoStream);
// Update the data based on the new inputs.
writer.WriteLine(this.NewsUrl);
writer.WriteLine(this.SportsUrl);
// Calculate the amount of space used to record this user's preferences.
double d = isoFile.CurrentSize / isoFile.MaximumSize;
Console.WriteLine("CurrentSize = " + isoFile.CurrentSize.ToString());
Console.WriteLine("MaximumSize = " + isoFile.MaximumSize.ToString());
// StreamWriter.Close implicitly closes isoStream.
writer.Close();
isoFile.Close();
return d;
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
return 0.0;
}
}
}
'This sample demonstrates methods of classes found in the System.IO IsolatedStorage namespace.
Imports System.IO
Imports System.IO.IsolatedStorage
Imports System.Security.Policy
Imports Microsoft.Win32.SafeHandles
Imports System.Security.Permissions
Namespace ISOCS
_
Class ConsoleApp
<STAThread()> _
Overloads Shared Sub Main(ByVal args() As String)
' Prompt the user for their username.
Console.WriteLine("Enter your login ID:")
' Does no error checking.
Dim lp As New LoginPrefs(Console.ReadLine())
If lp.NewPrefs Then
Console.WriteLine("Please set preferences for a new user.")
GatherInfoFromUser(lp)
' Write the new preferences to storage.
Dim percentUsed As Double = lp.SetPrefsForUser()
Console.WriteLine(("Your preferences have been written. Current space used is " & percentUsed.ToString() & " %"))
Else
Console.WriteLine("Welcome back.")
Console.WriteLine("Your preferences have expired, please reset them.")
GatherInfoFromUser(lp)
lp.SetNewPrefsForUser()
Console.WriteLine("Your news site has been set to {0}" & ControlChars.Cr & " and your sports site has been set to {1}.", lp.NewsUrl, lp.SportsUrl)
End If
lp.GetIsoStoreInfo()
Console.WriteLine("Enter 'd' to delete the IsolatedStorage files and exit, or press any other key to exit without deleting files.")
Dim consoleInput As String = Console.ReadLine()
If consoleInput.ToLower() = "d" Then
lp.DeleteFiles()
lp.DeleteDirectories()
End If
End Sub
Shared Sub GatherInfoFromUser(ByVal lp As LoginPrefs)
Console.WriteLine("Please enter the URL of your news site.")
lp.NewsUrl = Console.ReadLine()
Console.WriteLine("Please enter the URL of your sports site.")
lp.SportsUrl = Console.ReadLine()
End Sub
End Class
_
<SecurityPermissionAttribute(SecurityAction.Demand, Flags:=SecurityPermissionFlag.UnmanagedCode)> _
Public Class LoginPrefs
Public Sub New(ByVal myUserName As String)
userName = myUserName
myNewPrefs = GetPrefsForUser()
End Sub
Private userName As String
Private myNewsUrl As String
Public Property NewsUrl() As String
Get
Return myNewsUrl
End Get
Set(ByVal Value As String)
myNewsUrl = Value
End Set
End Property
Private mySportsUrl As String
Public Property SportsUrl() As String
Get
Return mySportsUrl
End Get
Set(ByVal Value As String)
mySportsUrl = Value
End Set
End Property
Private myNewPrefs As Boolean
Public ReadOnly Property NewPrefs() As Boolean
Get
Return myNewPrefs
End Get
End Property
Private Function GetPrefsForUser() As Boolean
Try
' Retrieve an IsolatedStorageFile for the current Domain and Assembly.
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetStore(IsolatedStorageScope.User _
Or IsolatedStorageScope.Assembly _
Or IsolatedStorageScope.Domain, Nothing, Nothing)
Dim isoStream As New IsolatedStorageFileStream("substituteUsername", System.IO.FileMode.Open, _
System.IO.FileAccess.Read, System.IO.FileShare.Read)
' farThe code executes to this point only if a file corresponding to the username exists.
' Though you can perform operations on the stream, you cannot get a handle to the file.
Try
Dim aFileHandle As SafeFileHandle = isoStream.SafeFileHandle
Console.WriteLine(("A pointer to a file handle has been obtained. " & aFileHandle.ToString() & " " & aFileHandle.GetHashCode()))
Catch ex As Exception
' Handle the exception.
Console.WriteLine("Expected exception")
Console.WriteLine(ex.ToString())
End Try
Dim reader As New StreamReader(isoStream)
' Read the data.
Me.NewsUrl = reader.ReadLine()
Me.SportsUrl = reader.ReadLine()
reader.Close()
isoFile.Close()
Return False
Catch ex As System.IO.FileNotFoundException
' Expected exception if a file cannot be found. This indicates that we have a new user.
Return True
End Try
End Function 'GetPrefsForUser
Public Function GetIsoStoreInfo() As Boolean
Try
'Get a User store with type evidence for the current Domain and the Assembly.
Dim isoFile As IsolatedStorageFile = _
IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
IsolatedStorageScope.Assembly Or IsolatedStorageScope.Domain, _
GetType(System.Security.Policy.Url), GetType(System.Security.Policy.Url))
Dim dirNames As String() = isoFile.GetDirectoryNames("*")
Dim fileNames As String() = isoFile.GetFileNames("*")
Dim name As String
' List directories currently in this Isolated Storage.
If dirNames.Length > 0 Then
For Each name In dirNames
Console.WriteLine("Directory Name: " & name)
Next name
End If
' List the files currently in this Isolated Storage.
' The list represents all users who have personal preferences stored for this application.
If fileNames.Length > 0 Then
For Each name In fileNames
Console.WriteLine("File Name: " & name)
Next name
End If
isoFile.Close()
Return True
Catch ex As Exception
Console.WriteLine(ex.ToString())
End Try
End Function 'GetIsoStoreInfo
Public Function SetPrefsForUser() As Double
Try
Dim isoFile As IsolatedStorageFile
isoFile = IsolatedStorageFile.GetUserStoreForDomain()
' Open or create a writable file.
Dim isoStream As New IsolatedStorageFileStream(Me.userName, FileMode.OpenOrCreate, _
FileAccess.Write, isoFile)
Dim writer As New StreamWriter(isoStream)
writer.WriteLine(Me.NewsUrl)
writer.WriteLine(Me.SportsUrl)
' Calculate the amount of space used to record the user's preferences.
Dim d As Double = Convert.ToDouble(isoFile.CurrentSize) / Convert.ToDouble(isoFile.MaximumSize)
Console.WriteLine(("CurrentSize = " & isoFile.CurrentSize.ToString()))
Console.WriteLine(("MaximumSize = " & isoFile.MaximumSize.ToString()))
' StreamWriter.Close implicitly closes isoStream.
writer.Close()
isoFile.Dispose()
isoFile.Close()
Return d
Catch ex As Exception
' Add code here to handle the exception.
Console.WriteLine(ex)
Return 0.0
End Try
End Function 'SetPrefsForUser
Public Sub DeleteFiles()
Try
Dim isoFile As IsolatedStorageFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
IsolatedStorageScope.Assembly Or IsolatedStorageScope.Domain, _
GetType(System.Security.Policy.Url), GetType(System.Security.Policy.Url))
Dim name As String
Dim dirNames As String() = isoFile.GetDirectoryNames("*")
Dim fileNames As String() = isoFile.GetFileNames("*")
' List the files currently in this Isolated Storage.
' The list represents all users who have personal
' preferences stored for this application.
If fileNames.Length > 0 Then
For Each name In fileNames
' Delete the files.
isoFile.DeleteFile(name)
Next name
'Confirm no files are left.
fileNames = isoFile.GetFileNames("*")
End If
Catch ex As Exception
Console.WriteLine(ex.ToString())
End Try
End Sub
' This method deletes directories in the specified Isolated Storage, after first
' deleting the files they contain. In this example, the Archive directory is deleted.
' There should be no other directories in this Isolated Storage.
Public Sub DeleteDirectories()
Try
Dim isoFile As IsolatedStorageFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User _
Or IsolatedStorageScope.Assembly Or IsolatedStorageScope.Domain, _
GetType(System.Security.Policy.Url), GetType(System.Security.Policy.Url))
Dim name As String
Dim dirNames As String() = isoFile.GetDirectoryNames("*")
Dim fileNames As String() = isoFile.GetFileNames("Archive\*")
' Delete all the files currently in the Archive directory.
If fileNames.Length > 0 Then
For Each name In fileNames
isoFile.DeleteFile(("Archive\" & name))
Next name
'Confirm no files are left.
fileNames = isoFile.GetFileNames("Archive\*")
End If
If dirNames.Length > 0 Then
For Each name In dirNames
' Delete the Archive directory.
isoFile.DeleteDirectory(name)
Next name
End If
dirNames = isoFile.GetDirectoryNames("*")
isoFile.Remove()
Catch ex As Exception
Console.WriteLine(ex.ToString())
End Try
End Sub
Public Function SetNewPrefsForUser() As Double
Try
Dim inputChar As Byte
Dim isoFile As IsolatedStorageFile = IsolatedStorageFile.GetStore(IsolatedStorageScope.User Or _
IsolatedStorageScope.Assembly Or IsolatedStorageScope.Domain, _
GetType(System.Security.Policy.Url), GetType(System.Security.Policy.Url))
' If this is not a new user, archive the old preferences and
' overwrite them using the new preferences.
If Not Me.myNewPrefs Then
If isoFile.GetDirectoryNames("Archive").Length = 0 Then
isoFile.CreateDirectory("Archive")
Else
Dim source As New IsolatedStorageFileStream(Me.userName, FileMode.OpenOrCreate, isoFile)
Dim canWrite, canRead As Boolean
' This is the stream from which data will be read.
If source.CanRead Then canRead = True Else canRead = False
Console.WriteLine("Is the source file readable? " & canRead)
Console.WriteLine("Creating new IsolatedStorageFileStream for Archive.")
' Open or create a writable file.
Dim target As New IsolatedStorageFileStream("Archive\ " & Me.userName, _
FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write, isoFile)
' This is the stream to which data will be written.
If target.CanWrite Then canWrite = True Else canWrite = False
Console.WriteLine("Is the target file writable? " & canWrite)
target.SetLength(0) 'rewind the target file
' Stream the old file to a new file in the Archive directory.
If source.IsAsync And target.IsAsync Then
' IsolatedStorageFileStreams cannot be asynchronous. However, you
' can use the asynchronous BeginRead and BeginWrite functions
' with some possible performance penalty.
Console.WriteLine("IsolatedStorageFileStreams cannot be asynchronous.")
Else
Console.WriteLine("Writing data to the new file.")
While source.Position < source.Length
inputChar = CByte(source.ReadByte())
target.WriteByte(inputChar)
End While
' Determine the size of the IsolatedStorageFileStream
' by checking its Length property.
Console.WriteLine(("Total Bytes Read: " & source.Length))
End If
' After you have read and written to the streams, close them.
target.Close()
source.Close()
End If
End If
' Open or create a writable file with a maximum size of 10K.
Dim isoStream As New IsolatedStorageFileStream(Me.userName, FileMode.OpenOrCreate, _
FileAccess.Write, FileShare.Write, 10240, isoFile)
isoStream.SetLength(0) 'Position to overwrite the old data.
Dim writer As New StreamWriter(isoStream)
' Update the data based on the new inputs.
writer.WriteLine(Me.NewsUrl)
writer.WriteLine(Me.SportsUrl)
' Calculate the amount of space used to record this user's preferences.
Dim d As Double = Convert.ToDouble(isoFile.CurrentSize) / Convert.ToDouble(isoFile.MaximumSize)
Console.WriteLine(("CurrentSize = " & isoFile.CurrentSize.ToString()))
Console.WriteLine(("MaximumSize = " & isoFile.MaximumSize.ToString()))
' StreamWriter.Close implicitly closes isoStream.
writer.Close()
isoFile.Close()
Return d
Catch ex As Exception
Console.WriteLine(ex.ToString())
Return 0.0
End Try
End Function 'SetNewPrefsForUser
End Class
End Namespace 'ISOCS
Hinweise
Verwenden Sie diese Klasse, um Dateien im isolierten Speicher zu lesen, zu schreiben und zu erstellen.
Da diese Klasse erweitert FileStream, können Sie eine Instanz von IsolatedStorageFileStream in den meisten Situationen verwenden, in denen andernfalls verwendet FileStream werden könnte, z. B. zum Erstellen eines StreamReader oder StreamWriter.
Dieser Typ implementiert die IDisposable-Schnittstelle. Nach Abschluss der Verwendung sollten Sie den Typ entweder direkt oder indirekt löschen. Zum direkten Löschen des Typs rufen Sie seine Dispose-Methode in einem try
/catch
-Block auf. Zum indirekten Löschen verwenden Sie ein Sprachkonstrukt wie using
(in C#) oder Using
(in Visual Basic). Weitere Informationen finden Sie im Abschnitt „Verwenden eines Objekts, das IDisposable implementiert“ des Themas „Die IDisposable-Schnittstelle“.
Wichtig
Die isolierte Speicherung ist nicht für Windows 8.x Store-Apps verfügbar. Verwenden Sie stattdessen zum Speichern von lokalen Daten und Dateien die in der Windows-Runtime-API enthaltenen Anwendungsdatenklassen in den Windows.Storage
-Namespaces. Weitere Informationen finden Sie im Windows Developer Center unter Anwendungsdaten .
Konstruktoren
IsolatedStorageFileStream(String, FileMode) |
Initialisiert eine neue Instanz eines IsolatedStorageFileStream-Objekts, das im angegebenen |
IsolatedStorageFileStream(String, FileMode, FileAccess) |
Initialisiert eine neue Instanz der IsolatedStorageFileStream-Klasse, die im angegebenen |
IsolatedStorageFileStream(String, FileMode, FileAccess, FileShare) |
Initialisiert eine neue Instanz einer IsolatedStorageFileStream-Klasse, die im angegebenen |
IsolatedStorageFileStream(String, FileMode, FileAccess, FileShare, Int32) |
Initialisiert eine neue Instanz einer IsolatedStorageFileStream-Klasse, die im angegebenen |
IsolatedStorageFileStream(String, FileMode, FileAccess, FileShare, Int32, IsolatedStorageFile) |
Initialisiert eine neue Instanz einer IsolatedStorageFileStream-Klasse, die im angegebenen |
IsolatedStorageFileStream(String, FileMode, FileAccess, FileShare, IsolatedStorageFile) |
Initialisiert eine neue Instanz einer IsolatedStorageFileStream-Klasse, die im angegebenen |
IsolatedStorageFileStream(String, FileMode, FileAccess, IsolatedStorageFile) |
Initialisiert eine neue Instanz einer IsolatedStorageFileStream-Klasse, die im angegebenen |
IsolatedStorageFileStream(String, FileMode, IsolatedStorageFile) |
Initialisiert eine neue Instanz der IsolatedStorageFileStream-Klasse, die im angegebenen |
Eigenschaften
CanRead |
Ruft einen booleschen Wert ab, der angibt, ob die Datei gelesen werden kann. |
CanSeek |
Ruft einen booleschen Wert ab, der angibt, ob Suchvorgänge unterstützt werden. |
CanTimeout |
Ruft einen Wert ab, der bestimmt, ob für den aktuellen Stream ein Timeout möglich ist. (Geerbt von Stream) |
CanWrite |
Ruft einen booleschen Wert ab, der angibt, ob in die Datei geschrieben werden kann. |
Handle |
Veraltet.
Veraltet.
Veraltet.
Ruft das Dateihandle für die Datei ab, die vom aktuellen IsolatedStorageFileStream-Objekt gekapselt wird. Der Zugriff auf diese Eigenschaft ist für ein IsolatedStorageFileStream-Objekt nicht zulässig und löst eine IsolatedStorageException-Ausnahme aus. |
IsAsync |
Ruft einen booleschen Wert ab, der angibt, ob das IsolatedStorageFileStream-Objekt asynchron oder synchron geöffnet wurde. |
Length |
Ruft die Länge des IsolatedStorageFileStream-Objekts ab. |
Name |
Ruft den absoluten Pfad der Datei auf, die im |
Position |
Ruft die aktuelle Position des aktuellen IsolatedStorageFileStream-Objekts ab oder legt diese fest. |
ReadTimeout |
Ruft einen Wert in Millisekunden ab, der bestimmt, wie lange der Stream versucht, Lesevorgänge durchzuführen, bevor ein Timeout auftritt, oder legt diesen fest. (Geerbt von Stream) |
SafeFileHandle |
Ruft ein SafeFileHandle-Objekt ab, das das Dateihandle des Betriebssystems für die Datei darstellt, die vom aktuellen IsolatedStorageFileStream-Objekt gekapselt wird. |
SafeFileHandle |
Ruft ein SafeFileHandle-Objekt ab, das das Dateihandle des Betriebssystems für die Datei darstellt, die vom aktuellen FileStream-Objekt gekapselt wird. (Geerbt von FileStream) |
WriteTimeout |
Ruft einen Wert in Millisekunden ab, der bestimmt, wie lange der Stream versucht, Schreibvorgänge durchzuführen, bevor ein Timeout auftritt, oder legt diesen fest. (Geerbt von Stream) |
Methoden
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Beginnt einen asynchronen Lesevorgang. |
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Beginnt einen asynchronen Lesevorgang. (Verwenden Sie stattdessen ReadAsync(Byte[], Int32, Int32).) (Geerbt von Stream) |
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Beginnt einen asynchronen Schreibvorgang. |
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Beginnt einen asynchronen Schreibvorgang. (Verwenden Sie stattdessen WriteAsync(Byte[], Int32, Int32).) (Geerbt von Stream) |
Close() |
Gibt die dem IsolatedStorageFileStream-Objekt zugeordneten Ressourcen frei. |
Close() |
Schließt den aktuellen Stream und gibt alle dem aktuellen Stream zugeordneten Ressourcen frei (z. B. Sockets und Dateihandles). Anstatt diese Methode aufzurufen, stellen Sie sicher, dass der Stream ordnungsgemäß freigegeben wird. (Geerbt von Stream) |
Close() |
Schließt den aktuellen Stream und gibt alle dem aktuellen Stream zugeordneten Ressourcen frei (z. B. Sockets und Dateihandles). (Geerbt von FileStream) |
CopyTo(Stream) |
Liest alle Bytes aus dem aktuellen Stream und schreibt sie in einen anderen Datenstrom. Beide Datenstrompositionen werden um die Anzahl der kopierten Bytes erweitert. (Geerbt von Stream) |
CopyTo(Stream, Int32) |
Liest alles Bytes aus dem aktuellen Datenstrom und schreibt sie unter Verwendung einer angegebenen Puffergröße in einen anderen Datenstrom. Beide Datenstrompositionen werden um die Anzahl der kopierten Bytes erweitert. (Geerbt von Stream) |
CopyTo(Stream, Int32) |
Macht eine Datei im isolierten Speicher verfügbar. (Geerbt von FileStream) |
CopyToAsync(Stream) |
Liest die Bytes asynchron aus dem aktuellen Stream und schreibt sie in einen anderen Stream. Beide Datenstrompositionen werden um die Anzahl der kopierten Bytes erweitert. (Geerbt von Stream) |
CopyToAsync(Stream, CancellationToken) |
Liest die Bytes asynchron aus dem aktuellen Stream und schreibt sie unter Verwendung eines angegebenen Abbruchtokens in einen anderen Stream. Beide Datenstrompositionen werden um die Anzahl der kopierten Bytes erweitert. (Geerbt von Stream) |
CopyToAsync(Stream, Int32) |
Liest die Bytes asynchron aus dem aktuellen Stream und schreibt sie unter Verwendung einer angegebenen Puffergröße in einen anderen Stream. Beide Datenstrompositionen werden um die Anzahl der kopierten Bytes erweitert. (Geerbt von Stream) |
CopyToAsync(Stream, Int32, CancellationToken) |
Liest die Bytes asynchron aus dem aktuellen Stream und schreibt sie unter Verwendung einer angegebenen Puffergröße und eines Abbruchtokens in einen anderen Stream. Beide Datenstrompositionen werden um die Anzahl der kopierten Bytes erweitert. (Geerbt von Stream) |
CopyToAsync(Stream, Int32, CancellationToken) |
Liest die Bytes asynchron aus dem aktuellen Dateidatenstrom und schreibt sie unter Verwendung einer angegebenen Puffergröße und eines Abbruchtokens in einen anderen Datenstrom. (Geerbt von FileStream) |
CreateObjRef(Type) |
Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind. (Geerbt von MarshalByRefObject) |
CreateWaitHandle() |
Veraltet.
Veraltet.
Veraltet.
Reserviert ein WaitHandle-Objekt. (Geerbt von Stream) |
Dispose() |
Gibt alle vom Stream verwendeten Ressourcen frei. (Geerbt von Stream) |
Dispose(Boolean) |
Gibt die von IsolatedStorageFileStream verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei. |
DisposeAsync() |
Gibt die nicht verwalteten Ressourcen, die von der IsolatedStorageFileStream verwendet werden, asynchron frei. |
DisposeAsync() |
Gibt die nicht verwalteten Ressourcen, die von der Stream verwendet werden, asynchron frei. (Geerbt von Stream) |
DisposeAsync() |
Gibt die nicht verwalteten Ressourcen, die von der FileStream verwendet werden, asynchron frei. (Geerbt von FileStream) |
EndRead(IAsyncResult) |
Beendet eine ausstehende asynchrone Leseanforderung. |
EndRead(IAsyncResult) |
Wartet, bis der ausstehende asynchrone Lesevorgang abgeschlossen ist. (Verwenden Sie stattdessen ReadAsync(Byte[], Int32, Int32).) (Geerbt von Stream) |
EndWrite(IAsyncResult) |
Beendet einen asynchronen Schreibvorgang. |
EndWrite(IAsyncResult) |
Beendet einen asynchronen Schreibvorgang. (Verwenden Sie stattdessen WriteAsync(Byte[], Int32, Int32).) (Geerbt von Stream) |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
Flush() |
Löscht die Puffer für diesen Datenstrom und veranlasst die Ausgabe aller gepufferten Daten in die Datei. |
Flush(Boolean) |
Löscht die Puffer für diesen Datenstrom, veranlasst die Ausgabe aller gepufferten Daten in die Datei und löscht zudem alle Zwischendateipuffer. |
Flush(Boolean) |
Löscht die Puffer für diesen Datenstrom, veranlasst die Ausgabe aller gepufferten Daten in die Datei und löscht zudem alle Zwischendateipuffer. (Geerbt von FileStream) |
FlushAsync() |
Löscht sämtliche Puffer für diesen Stream asynchron und veranlasst die Ausgabe aller gepufferten Daten an das zugrunde liegende Gerät. (Geerbt von Stream) |
FlushAsync(CancellationToken) |
Löscht die Puffer für diesen Datenstrom asynchron und veranlasst die Ausgabe aller gepufferten Daten in die Datei. |
FlushAsync(CancellationToken) |
Löscht alle Puffer für diesen Stream asynchron und veranlasst die Ausgabe aller gepufferten Daten an das zugrunde liegende Gerät und überwacht Abbruchanforderungen. (Geerbt von FileStream) |
GetAccessControl() |
Ruft ein FileSecurity-Objekt ab, das die Einträge in der Zugriffssteuerungsliste für die Datei kapselt, das vom aktuellen FileStream-Objekt beschrieben wird. (Geerbt von FileStream) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetLifetimeService() |
Veraltet.
Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert. (Geerbt von MarshalByRefObject) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
InitializeLifetimeService() |
Veraltet.
Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab. (Geerbt von MarshalByRefObject) |
Lock(Int64, Int64) |
Verhindert, dass andere Prozesse im Stream lesen oder schreiben. |
Lock(Int64, Int64) |
Verhindert, dass andere Prozesse im FileStream lesen oder schreiben. (Geerbt von FileStream) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
MemberwiseClone(Boolean) |
Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts. (Geerbt von MarshalByRefObject) |
ObjectInvariant() |
Veraltet.
Bietet Unterstützung für einen Contract. (Geerbt von Stream) |
Read(Byte[], Int32, Int32) |
Kopiert Bytes aus dem aktuellen gepufferten IsolatedStorageFileStream-Objekt in ein Bytearray. |
Read(Span<Byte>) |
Kopiert Bytes aus dem aktuellen gepufferten IsolatedStorageFileStream-Objekt in einen Bytebereich. |
Read(Span<Byte>) |
Liest beim Überschreiben in einer abgeleiteten Klasse eine Folge von Bytes aus dem aktuellen Stream und erhöht die Position im Stream um die Anzahl der gelesenen Bytes. (Geerbt von Stream) |
Read(Span<Byte>) |
Liest eine Bytesequenz aus dem aktuellen Dateidatenstrom und setzt die Position in diesem Dateidatenstrom um die Anzahl der gelesenen Bytes nach vorn. (Geerbt von FileStream) |
ReadAsync(Byte[], Int32, Int32) |
Liest eine Bytesequenz asynchron aus dem aktuellen Stream und setzt die Position in diesem Stream um die Anzahl der gelesenen Bytes nach vorn. (Geerbt von Stream) |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Kopiert Bytes asynchron aus dem aktuellen gepufferten IsolatedStorageFileStream-Objekt in ein Bytearray. |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Liest eine Folge von Bytes asynchron aus dem aktuellen Dateidatenstrom, schreibt diese beginnend bei einem angegebenen Offset in ein Bytearray, erhöht die Position im Dateidatenstrom um die Anzahl der gelesenen Bytes und überwacht Abbruchsanforderungen. (Geerbt von FileStream) |
ReadAsync(Memory<Byte>, CancellationToken) |
Kopiert Bytes asynchron aus dem aktuellen gepufferten IsolatedStorageFileStream-Objekt in ein Bytespeicherbereich. |
ReadAsync(Memory<Byte>, CancellationToken) |
Liest eine Folge von Bytes asynchron aus aktuellen Stream, erhöht die Position im Stream um die Anzahl der gelesenen Bytes und überwacht Abbruchanfragen. (Geerbt von Stream) |
ReadAsync(Memory<Byte>, CancellationToken) |
Liest eine Folge von Bytes asynchron aus dem aktuellen Dateidatenstrom, schreibt diese in einen Speicherbereich, erhöht die Position im Dateidatenstrom um die Anzahl der gelesenen Bytes und überwacht Abbruchsanforderungen. (Geerbt von FileStream) |
ReadAtLeast(Span<Byte>, Int32, Boolean) |
Liest mindestens eine Mindestanzahl von Bytes aus dem aktuellen Stream und erhöht die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes. (Geerbt von Stream) |
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken) |
Liest asynchron mindestens eine Mindestanzahl von Bytes aus dem aktuellen Stream, erhöht die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes und überwacht Abbruchanforderungen. (Geerbt von Stream) |
ReadByte() |
Liest ein einzelnes Byte aus dem IsolatedStorageFileStream-Objekt im isolierten Speicher. |
ReadExactly(Byte[], Int32, Int32) |
|
ReadExactly(Span<Byte>) |
Liest Bytes aus dem aktuellen Stream und verschiebt die Position innerhalb des Datenstroms, bis der |
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Liest |
ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Liest Bytes asynchron aus dem aktuellen Stream, verschiekt die Position innerhalb des Datenstroms, bis der |
Seek(Int64, SeekOrigin) |
Legt die aktuelle Position dieses IsolatedStorageFileStream-Objekts auf den angegebenen Wert fest. |
SetAccessControl(FileSecurity) |
Wendet von einem FileSecurity-Objekt beschriebene Einträge in Zugriffssteuerungslisten auf die Datei an, die vom aktuellen FileStream-Objekt beschrieben wird. (Geerbt von FileStream) |
SetLength(Int64) |
Legt die Länge dieses IsolatedStorageFileStream-Objekts auf den angegebenen |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Unlock(Int64, Int64) |
Ermöglicht anderen Prozessen den Zugriff auf die gesamte Datei oder einen Teil der Datei, die zuvor gesperrt war. |
Unlock(Int64, Int64) |
Ermöglicht anderen Prozessen den Zugriff auf die gesamte Datei oder einen Teil der Datei, die zuvor gesperrt war. (Geerbt von FileStream) |
Write(Byte[], Int32, Int32) |
Schreibt einen Block von Bytes mithilfe der aus einem Puffer, der aus einem Bytearray besteht, gelesenen Daten in das Dateidatenstromobjekt des isolierten Speichers. |
Write(ReadOnlySpan<Byte>) |
Schreibt einen Block von Bytes mithilfe der aus einem Puffer, der aus einer schreibgeschützten Bytespanne besteht, gelesenen Daten in das Dateidatenstromobjekt des isolierten Speichers. |
Write(ReadOnlySpan<Byte>) |
Schreibt beim Überschreiben in einer abgeleiteten Klasse eine Folge von Bytes in den aktuellen Stream und erhöht die aktuelle Position im Stream um die Anzahl der geschriebenen Bytes. (Geerbt von Stream) |
Write(ReadOnlySpan<Byte>) |
Schreibt eine Bytesequenz aus einer schreibgeschützten Spanne in den aktuellen Dateidatenstrom und setzt die aktuelle Position in diesem Dateidatenstrom um die Anzahl der geschriebenen Bytes nach vorn. (Geerbt von FileStream) |
WriteAsync(Byte[], Int32, Int32) |
Schreibt eine Bytesequenz asynchron in den aktuellen Stream und setzt die aktuelle Position in diesem Stream um die Anzahl der geschriebenen Bytes nach vorn. (Geerbt von Stream) |
WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Schreibt einen Block von Bytes mithilfe der aus einem Puffer, der aus einem Bytearray besteht, gelesenen Daten asynchron in das Dateidatenstromobjekt des isolierten Speichers. |
WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Schreibt beim Überschreiben in einer abgeleiteten Klasse eine Folge von Bytes asynchron in den aktuellen Stream und erhöht die aktuelle Position im Stream um die Anzahl der geschriebenen Bytes und überwacht Abbruchanforderungen. (Geerbt von FileStream) |
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Schreibt einen Block von Bytes mithilfe der aus einem Puffer, der aus einem schreibgeschützten Bytespeicherbereich besteht, gelesenen Daten asynchron in das Dateidatenstromobjekt des isolierten Speichers. |
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Schreibt beim Überschreiben in einer abgeleiteten Klasse eine Folge von Bytes asynchron in den aktuellen Stream und erhöht die aktuelle Position im Stream um die Anzahl der geschriebenen Bytes und überwacht Abbruchanforderungen. (Geerbt von Stream) |
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Schreibt eine Bytesequenz aus einem Speicherbereich asynchron in den aktuellen Dateidatenstrom, erhöht die aktuelle Position im Dateidatenstrom um die Anzahl geschriebener Bytes und überwacht Abbruchanforderungen. (Geerbt von FileStream) |
WriteByte(Byte) |
Schreibt ein einzelnes Byte in das IsolatedStorageFileStream-Objekt. |
Explizite Schnittstellenimplementierungen
IDisposable.Dispose() |
Gibt alle vom Stream verwendeten Ressourcen frei. (Geerbt von Stream) |
Erweiterungsmethoden
GetAccessControl(FileStream) |
Gibt die Sicherheitsinformationen einer Datei zurück. |
SetAccessControl(FileStream, FileSecurity) |
Ändert die Sicherheitsattribute einer vorhandenen Datei. |
CopyToAsync(Stream, PipeWriter, CancellationToken) |
Liest die Bytes asynchron aus der Stream-Klasse und schreibt sie unter Verwendung eines Abbruchtokens in die angegebene PipeWriter-Klasse. |
AsInputStream(Stream) |
Konvertiert einen verwalteten Stream in .NET für Microsoft Store-Apps in einen Eingabestream in der Windows-Runtime. |
AsOutputStream(Stream) |
Konvertiert einen verwalteten Stream in .NET für Microsoft Store-Apps in einen Ausgabestream in der Windows-Runtime. |
AsRandomAccessStream(Stream) |
Konvertiert den angegebenen Stream in einen Random-Access-Stream. |
ConfigureAwait(IAsyncDisposable, Boolean) |
Konfiguriert, wie Wartezeiten auf die Aufgaben angewandt werden, die von einem asynchronen verwerfbaren Element zurückgegeben werden. |
Gilt für:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für