SilverLight浏览器交互之:SilverLight用户独立存储空间的计算和扩展
概述
IsolatedStorageFile 成员
表示包含文件和目录的独立存储区。
IsolatedStorageFile.GetUserStoreForApplication 方法
获取从虚拟主机域调用的应用程序所使用的用户范围的独立存储。
域(网站)中的某个应用程序与该域中的所有其他应用程序共享组配额。
这使得同一个域中的多个应用程序可以共享一个配额。请注意,这里所说的域指的是虚拟主机域(例如 Microsoft.com),而不是应用程序域。
组配额的默认独立存储大小为 1 MB。若要增加配额,请使用 IncreaseQuotaTo 方法。
若要获取域中的所有应用程序的用户独立存储,请使用 GetUserStoreForSite 方法。
IsolatedStorageFile.Quota 属性
获取一个值,该值表示独立存储的最大可用空间量。
此属性从存储区的关联配额组获取值。初始配额为 1 MB,由域的所有应用程序共享。
IsolatedStorageFile.AvailableFreeSpace 属性
获取一个值,该值表示独立存储的可用空间量。
此属性从存储区的关联配额组获取值。由于配额可能会更改,因此不能将值缓存到内存中,而必须每次直接从磁盘中读取。
用户可以在独立空间内创建文件,如SilverLight浏览器交互之:SilverLight用户独立存储空间中文件的创建和读取
效果
点击扩展空间后
点击是后空间将变为4M
xaml代码
<Canvas Background="White">
<Rectangle x:Name="maximumRectangle"
Width="1"
Height="20"
Fill="#FFFFFFFF"
Stroke="#FF000000"
Canvas.Left="1"
Canvas.Top="5"
RadiusX="5"
RadiusY="5" />
<Rectangle x:Name="currentRectangle"
Width="1"
Height="20"
Stroke="#FF000000"
Canvas.Left="1"
Canvas.Top="5"
RadiusX="5"
RadiusY="5"
StrokeThickness="0">
<Rectangle.Fill>
<LinearGradientBrush EndPoint="0.5,1.35"
StartPoint="0.5,-0.3">
<GradientStop Color="#FF54CDEA"
Offset="0" />
<GradientStop Color="#FF017328"
Offset="0.5" />
<GradientStop Color="#FF54CDEA"
Offset="1" />
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
</Canvas>
<TextBlock Margin="30" x:Name="txt" Height="20" VerticalAlignment="Top"></TextBlock>
<Button Width="150"
Height="30"
Content="扩展空间"
Click="Button_Click" />
</Grid>
cs代码
{
InitializeComponent();
//设置Rectangle矩形尺寸来表示储存空间的大小
//IsolatedStorageFile 成员
//表示包含文件和目录的独立存储区。
//IsolatedStorageFile.GetUserStoreForApplication 方法
//获取从虚拟主机域调用的应用程序所使用的用户范围的独立存储。
//域(网站)中的某个应用程序与该域中的所有其他应用程序共享组配额。
//这使得同一个域中的多个应用程序可以共享一个配额。请注意,这里所说的域指的是虚拟主机域(例如 Microsoft.com),而不是应用程序域。
//组配额的默认独立存储大小为 1 MB。若要增加配额,请使用 IncreaseQuotaTo 方法。
//若要获取域中的所有应用程序的用户独立存储,请使用 GetUserStoreForSite 方法。
using (var isoFile = IsolatedStorageFile.GetUserStoreForApplication())
{
//IsolatedStorageFile.Quota 属性
//获取一个值,该值表示独立存储的最大可用空间量。
//此属性从存储区的关联配额组获取值。初始配额为 1 MB,由域的所有应用程序共享。
//IsolatedStorageFile.AvailableFreeSpace 属性
//获取一个值,该值表示独立存储的可用空间量。
//此属性从存储区的关联配额组获取值。由于配额可能会更改,因此不能将值缓存到内存中,而必须每次直接从磁盘中读取。
double usedSpace = isoFile.Quota - isoFile.AvailableFreeSpace;
maximumRectangle.Width = (isoFile.Quota / 10240) * 2;
currentRectangle.Width = (usedSpace / 10240) * 2;
txt.Text = "用户独立空间为:" + usedSpace+"KB";
}
}
private void Button_Click(object sender, RoutedEventArgs e)
{
using (var isoFile = IsolatedStorageFile.GetUserStoreForApplication())
{
var newQuotaSize = isoFile.Quota * 2;
var requestAccepted = isoFile.IncreaseQuotaTo(newQuotaSize);
if (!requestAccepted) return;
MessageBox.Show("当前空间为:\n总空间:" + isoFile.Quota / (1024 * 1024) +
"M\n可用空间:" + isoFile.AvailableFreeSpace / (1024 * 1024) +
"M\n独立存储空间:" + isoFile.UsedSize / 1024 + "M");
}
}
}
大功告成!!!
作者:记忆逝去的青春
出处:http://www.cnblogs.com/lukun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过http://www.cnblogs.com/lukun/ 联系我,非常感谢。