C# 什么';当CreateFileAsync将文件写入拒绝写入访问或容量不足的磁盘时,会发生这种情况

C# 什么';当CreateFileAsync将文件写入拒绝写入访问或容量不足的磁盘时,会发生这种情况,c#,windows-8,windows-runtime,microsoft-metro,windows-store-apps,C#,Windows 8,Windows Runtime,Microsoft Metro,Windows Store Apps,我编写了一个提供下载文件功能的类,我使用CreateFileAsync创建文件,然后使用WriteBytesAsync写入下载的每个字节。如果目标磁盘被拒绝写入或容量不足,WriteBytesAsync或CreateFileAsync是否会引发任何异常 谢谢。如果磁盘受写保护,则在创建文件时可能会生成未经授权的访问异常。我建议您检查一下磁盘驱动器中是否有可用空间。使用以下给定的方法获取磁盘驱动器的可用空间和容量 公共静态类StorageItemExtensions { 公共静态异步任务GetSp

我编写了一个提供下载文件功能的类,我使用CreateFileAsync创建文件,然后使用WriteBytesAsync写入下载的每个字节。如果目标磁盘被拒绝写入或容量不足,WriteBytesAsync或CreateFileAsync是否会引发任何异常


谢谢。

如果磁盘受写保护,则在创建文件时可能会生成未经授权的访问异常。我建议您检查一下磁盘驱动器中是否有可用空间。使用以下给定的方法获取磁盘驱动器的可用空间和容量

公共静态类StorageItemExtensions
{
公共静态异步任务GetSpace(此IStorageItem sf)
{
var properties=await sf.GetBasicPropertiesAsync();
return wait properties.RetrievePropertiesAsync(新[]{“System.FreeSpace”、“System.Capacity”});
}
公共静态字符串GetSizeString(此ulong sizeInB,双promoteLimit=1024,双decimalLimit=10,字符串分隔符=)
{
如果(sizeInB<促销限制)
返回string.Format(“{0}{1}B”,sizeInB,分隔符);
var sizeInKB=sizeInB/1024.0;
if(sizeInKB<小数限值)
返回string.Format(“{0:F2}{1}KB”,sizeInKB,分隔符);
如果(sizeInKB<促销限制)
返回string.Format(“{0:F2}{1}KB”,sizeInKB,分隔符);
var sizeInMB=sizeInKB/1024.0;
if(sizeInMB<小数限值)
返回string.Format(“{0:F2}{1}MB”,sizeInMB,分隔符);
if(sizeInMB<促销限制)
返回string.Format(“{0:F2}{1}MB”,sizeInMB,分隔符);
var sizeInGB=sizeInMB/1024.0;
if(尺寸B<小数限值)
返回string.Format(“{0:F2}{1}GB”,sizeInGB,分隔符);
if(sizeInGB
用法:

var filteredProperties=wait ApplicationData.Current.LocalFolder.GetSpace();
var diskSpace=((UInt64)filteredProperties[“System.FreeSpace”])。GetSizeString()+“/”+((UInt64)filteredProperties[“System.Capacity”])。GetSizeString();