我得到了兩種解決方案,但都對我無用。WinRT在Windows 8中使用C#的磁盤空間
解決方案1:kernel32.dll中(其工作代碼)
注:但我不希望導入的DLL在我的應用程序。 b/c與市場提交有關的問題。
[DllImport("kernel32.dll", SetLastError = true)]
static extern bool GetDiskFreeSpaceEx(
string lpDirectoryName,
out ulong lpFreeBytesAvailable,
out ulong lpTotalNumberOfBytes,
out ulong lpTotalNumberOfFreeBytes);
static void TestDiskSpace()
{
IStorageFolder appFolder = ApplicationData.Current.LocalFolder;
ulong a, b, c;
if(GetDiskFreeSpaceEx(appFolder.Path, out a, out b, out c))
Debug.WriteLine(string.Format("{0} bytes free", a));
}
解決方案2:使用DriveInfo類(不工作守則的WinRT)
注:命名空間中缺少WinRT的開發。 WinRT for Windows 8開發中不支持此類。
DriveInfo[] allDrives = DriveInfo.GetDrives();
foreach (DriveInfo d in allDrives)
{
Console.WriteLine("Drive {0}", d.Name);
Console.WriteLine(" File type: {0}", d.DriveType);
if (d.IsReady == true)
{
Console.WriteLine(" Volume label: {0}", d.VolumeLabel);
Console.WriteLine(" File system: {0}", d.DriveFormat);
Console.WriteLine(
" Available space to current user:{0, 15} bytes",
d.AvailableFreeSpace);
Console.WriteLine(
" Total available space: {0, 15} bytes",
d.TotalFreeSpace);
Console.WriteLine(
" Total size of drive: {0, 15} bytes ",
d.TotalSize);
}
}
所以,請爲我提供一個不同的解決方案或任何替代方案。
哪個對Windows 8開發的winrt有用?
看起來像的複製品http://stackoverflow.com/questions/15415278/get-free-disk-space-in-winrt-using-c-sharp和http://stackoverflow.com/questions/11133084/unable-to-get-free- disk-space-from-metro-style-app – kristianp
是的,我們看到了這個解決方案,但是我們無法在WinRT開發b/c中導入dll文件,這是市場問題tification。 –