Skip to content

Extension for size string #7257

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Dec 19, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/Files/BaseLayout.cs
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ internal set
if (isSizeKnown)
{
long size = selectedItems.Sum(item => item.FileSizeBytes);
SelectedItemsPropertiesViewModel.ItemSize = ByteSizeLib.ByteSize.FromBytes(size).ToBinaryString().ConvertSizeAbbreviation();
SelectedItemsPropertiesViewModel.ItemSize = size.ToSizeString();
}
}
}
Expand Down Expand Up @@ -629,7 +629,7 @@ private void SelectedItem_PropertyChanged(object sender, PropertyChangedEventArg
{
long size = items.Sum(item => item.FileSizeBytes);
SelectedItemsPropertiesViewModel.ItemSizeBytes = size;
SelectedItemsPropertiesViewModel.ItemSize = ByteSizeLib.ByteSize.FromBytes(size).ToBinaryString().ConvertSizeAbbreviation();
SelectedItemsPropertiesViewModel.ItemSize = size.ToSizeString();
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/Files/DataModels/NavigationControlItems/DriveItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,8 @@ public async Task UpdatePropertiesAsync()

SpaceText = string.Format(
"DriveFreeSpaceAndCapacity".GetLocalized(),
FreeSpace.ToBinaryString().ConvertSizeAbbreviation(),
MaxSpace.ToBinaryString().ConvertSizeAbbreviation());
FreeSpace.ToSizeString(),
MaxSpace.ToSizeString());

if (FreeSpace.Bytes > 0 && MaxSpace.Bytes > 0) // Make sure we don't divide by 0
{
Expand Down
13 changes: 11 additions & 2 deletions src/Files/Extensions/StringExtensions.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Microsoft.Toolkit.Uwp;
using ByteSizeLib;
using Microsoft.Toolkit.Uwp;
using System;
using System.Collections.Generic;
using System.IO;
Expand Down Expand Up @@ -89,5 +90,13 @@ public static string ConvertSizeAbbreviation(this string value)
}
return value;
}

public static string ToSizeString(this long size) => ByteSize.FromBytes(size).ToSizeString();
public static string ToSizeString(this ulong size) => ByteSize.FromBytes(size).ToSizeString();
public static string ToSizeString(this ByteSize size) => size.ToBinaryString().ConvertSizeAbbreviation();

public static string ToLongSizeString(this long size) => ByteSize.FromBytes(size).ToLongSizeString();
public static string ToLongSizeString(this ulong size) => ByteSize.FromBytes(size).ToLongSizeString();
public static string ToLongSizeString(this ByteSize size) => $"{size.ToSizeString()} ({size.Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})";
}
}
}
9 changes: 3 additions & 6 deletions src/Files/Filesystem/FolderHelpers.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using ByteSizeLib;
using Files.Extensions;
using Files.Extensions;
using Files.Filesystem.StorageItems;
using System;
using System.Collections.Generic;
Expand Down Expand Up @@ -69,14 +68,12 @@ public static async void UpdateFolder(ListedItem folder, CancellationToken cance

await dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
{
folder.FileSize = GetSizeString(0);
folder.FileSize = 0L.ToSizeString();
});

_ = await Calculate(folder.ItemPath);
}

static string GetSizeString(long size) => ByteSize.FromBytes(size).ToBinaryString().ConvertSizeAbbreviation();

async Task<long> Calculate(string folderPath)
{
if (string.IsNullOrEmpty(folderPath))
Expand Down Expand Up @@ -113,7 +110,7 @@ await dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
if (size > folder.FileSizeBytes)
{
folder.FileSizeBytes = size;
folder.FileSize = GetSizeString(size);
folder.FileSize = size.ToSizeString();
};
});

Expand Down
7 changes: 3 additions & 4 deletions src/Files/Filesystem/ListedItem.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using ByteSizeLib;
using Files.Enums;
using Files.Enums;
using Files.Extensions;
using Files.Filesystem.Cloud;
using Files.Filesystem.StorageItems;
Expand Down Expand Up @@ -432,7 +431,7 @@ public BaseStorageFile ItemFile
public string Key { get; set; }

/// <summary>
/// Manually check if a folder path contains child items,
/// Manually check if a folder path contains child items,
/// updating the ContainsFilesOrFolders property from its default value of true
/// </summary>
public void UpdateContainsFilesFolders()
Expand Down Expand Up @@ -500,7 +499,7 @@ public FtpItem(FtpListItem item, string folder, string dateReturnFormat = null)
FileSizeBytes = item.Size;
ContainsFilesOrFolders = !isFile;
FileImage = null;
FileSize = ByteSize.FromBytes(FileSizeBytes).ToBinaryString().ConvertSizeAbbreviation();
FileSize = FileSizeBytes.ToSizeString();
Opacity = 1;
IsHiddenItem = false;
}
Expand Down
7 changes: 3 additions & 4 deletions src/Files/Filesystem/Search/FolderSearch.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using ByteSizeLib;
using Files.Common;
using Files.Common;
using Files.Extensions;
using Files.Filesystem.StorageItems;
using Files.Helpers;
Expand Down Expand Up @@ -208,7 +207,7 @@ private async Task SearchTagsAsync(string folder, IList<ListedItem> results, Can
{
var isSystem = ((FileAttributes)findData.dwFileAttributes & FileAttributes.System) == FileAttributes.System;
var isHidden = ((FileAttributes)findData.dwFileAttributes & FileAttributes.Hidden) == FileAttributes.Hidden;

bool shouldBeListed = !isHidden || (UserSettingsService.PreferencesSettingsService.AreHiddenItemsVisible && (!isSystem || !UserSettingsService.PreferencesSettingsService.AreSystemItemsHidden));

if (shouldBeListed)
Expand Down Expand Up @@ -417,7 +416,7 @@ private async Task<ListedItem> GetListedItemAsync(IStorageItem item)
itemType = itemFileExtension.Trim('.') + " " + itemType;
}

var itemSize = ByteSize.FromBytes(props.Size).ToBinaryString().ConvertSizeAbbreviation();
var itemSize = props.Size.ToSizeString();

listedItem = new ListedItem(null)
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
using ByteSizeLib;
using Files.Extensions;
using Files.Extensions;
using Files.Filesystem.StorageItems;
using Files.Helpers;
using Files.Services;
using Files.Views.LayoutModes;
using Microsoft.Toolkit.Mvvm.DependencyInjection;
using Microsoft.Toolkit.Uwp;
using System;
using System.Collections.Generic;
using System.Diagnostics;
Expand Down Expand Up @@ -193,7 +188,7 @@ CancellationToken cancellationToken
var itemModifiedDate = basicProperties.DateModified;
var itemCreatedDate = file.DateCreated;
var itemPath = string.IsNullOrEmpty(file.Path) ? PathNormalization.Combine(currentStorageFolder.Path, file.Name) : file.Path;
var itemSize = ByteSize.FromBytes(basicProperties.Size).ToBinaryString().ConvertSizeAbbreviation();
var itemSize = basicProperties.Size.ToSizeString();
var itemSizeBytes = basicProperties.Size;
var itemType = file.DisplayType;
var itemFileExtension = file.FileType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using ByteSizeLib;
using Files.Common;
using Files.Common;
using Files.Extensions;
using Files.Filesystem.StorageItems;
using Files.Helpers;
Expand Down Expand Up @@ -203,7 +202,7 @@ CancellationToken cancellationToken
}

long itemSizeBytes = findData.GetSize();
var itemSize = ByteSize.FromBytes(itemSizeBytes).ToBinaryString().ConvertSizeAbbreviation();
var itemSize = itemSizeBytes.ToSizeString();
string itemType = "ItemTypeFile".GetLocalized();
string itemFileExtension = null;

Expand Down
8 changes: 4 additions & 4 deletions src/Files/ViewModels/ItemViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -814,7 +814,7 @@ await CoreApplication.MainView.DispatcherQueue.EnqueueAsync(async () =>
item.FileImage.DecodePixelType = DecodePixelType.Logical;
item.FileImage.DecodePixelWidth = (int)thumbnailSize;
await item.FileImage.SetSourceAsync(Thumbnail);
if (!string.IsNullOrEmpty(item.FileExtension) &&
if (!string.IsNullOrEmpty(item.FileExtension) &&
!item.IsShortcutItem && !item.IsExecutable &&
!ImagePreviewViewModel.Extensions.Contains(item.FileExtension))
{
Expand Down Expand Up @@ -1400,7 +1400,7 @@ await Task.Run(async () =>
client.Host = FtpHelpers.GetFtpHost(path);
client.Port = FtpHelpers.GetFtpPort(path);
client.Credentials = FtpManager.Credentials.Get(client.Host, FtpManager.Anonymous);

static async Task<FtpProfile> WrappedAutoConnectFtpAsync(FtpClient client)
{
try
Expand All @@ -1411,7 +1411,7 @@ static async Task<FtpProfile> WrappedAutoConnectFtpAsync(FtpClient client)
{
return null;
}

throw new InvalidOperationException();
}

Expand Down Expand Up @@ -2155,7 +2155,7 @@ await CoreApplication.MainView.DispatcherQueue.EnqueueAsync(() =>
if (result.Value.Size != null)
{
item.FileSizeBytes = result.Value.Size.Value;
item.FileSize = ByteSizeLib.ByteSize.FromBytes(item.FileSizeBytes).ToBinaryString().ConvertSizeAbbreviation();
item.FileSize = item.FileSizeBytes.ToSizeString();
}
}
}
Expand Down
5 changes: 2 additions & 3 deletions src/Files/ViewModels/Previews/ArchivePreviewViewModel.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using ByteSizeLib;
using Files.Extensions;
using Files.Extensions;
using Files.Filesystem;
using Files.ViewModels.Properties;
using ICSharpCode.SharpZipLib.Zip;
Expand Down Expand Up @@ -53,7 +52,7 @@ public override async Task<List<FileProperty>> LoadPreviewAndDetails()
details.Add(new FileProperty()
{
NameResource = "PropertyUncompressedSize",
Value = $"{ByteSize.FromBytes(totalSize).ToBinaryString().ConvertSizeAbbreviation()} ({ByteSize.FromBytes(totalSize).Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})",
Value = totalSize.ToLongSizeString(),
});

_ = await base.LoadPreviewAndDetails(); // Loads the thumbnail preview
Expand Down
5 changes: 2 additions & 3 deletions src/Files/ViewModels/Properties/BaseProperties.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using ByteSizeLib;
using Files.Enums;
using Files.Enums;
using Files.Extensions;
using Microsoft.Toolkit.Uwp;
using System;
Expand Down Expand Up @@ -86,7 +85,7 @@ public async Task<long> CalculateFolderSizeAsync(string path, CancellationToken
await Dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
{
ViewModel.ItemSizeBytes = size;
ViewModel.ItemSize = ByteSize.FromBytes(size).ToBinaryString().ConvertSizeAbbreviation();
ViewModel.ItemSize = size.ToSizeString();
SetItemsCountString();
});
}
Expand Down
5 changes: 2 additions & 3 deletions src/Files/ViewModels/Properties/CombinedProperties.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using ByteSizeLib;
using Files.Extensions;
using Files.Extensions;
using Files.Filesystem;
using Files.Helpers;
using Microsoft.Toolkit.Uwp;
Expand Down Expand Up @@ -94,7 +93,7 @@ public override async void GetSpecialProperties()
ViewModel.ItemSizeProgressVisibility = Visibility.Collapsed;

totalSize = filesSize + foldersSize;
ViewModel.ItemSize = $"{ByteSize.FromBytes(totalSize).ToBinaryString().ConvertSizeAbbreviation()} ({ByteSize.FromBytes(totalSize).Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})";
ViewModel.ItemSize = totalSize.ToLongSizeString();
SetItemsCountString();
}

Expand Down
5 changes: 2 additions & 3 deletions src/Files/ViewModels/Properties/FileProperties.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using ByteSizeLib;
using Files.Extensions;
using Files.Extensions;
using Files.Filesystem;
using Files.Filesystem.StorageItems;
using Files.Helpers;
Expand Down Expand Up @@ -107,7 +106,7 @@ public override async void GetSpecialProperties()
Item.ItemPath, System.IO.FileAttributes.Hidden);

ViewModel.ItemSizeVisibility = Visibility.Visible;
ViewModel.ItemSize = $"{ByteSize.FromBytes(Item.FileSizeBytes).ToBinaryString().ConvertSizeAbbreviation()} ({ByteSize.FromBytes(Item.FileSizeBytes).Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})";
ViewModel.ItemSize = Item.FileSizeBytes.ToLongSizeString();

var fileIconData = await FileThumbnailHelper.LoadIconFromPathAsync(Item.ItemPath, 80, Windows.Storage.FileProperties.ThumbnailMode.SingleItem);
if (fileIconData != null)
Expand Down
4 changes: 2 additions & 2 deletions src/Files/ViewModels/Properties/FolderProperties.cs
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ public async override void GetSpecialProperties()
if (Item.IsShortcutItem)
{
ViewModel.ItemSizeVisibility = Visibility.Visible;
ViewModel.ItemSize = $"{ByteSize.FromBytes(Item.FileSizeBytes).ToBinaryString().ConvertSizeAbbreviation()} ({ByteSize.FromBytes(Item.FileSizeBytes).Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})";
ViewModel.ItemSize = Item.FileSizeBytes.ToLongSizeString();
ViewModel.ItemCreatedTimestamp = Item.ItemDateCreated;
ViewModel.ItemAccessedTimestamp = Item.ItemDateAccessed;
if (Item.IsLinkItem || string.IsNullOrWhiteSpace(((ShortcutItem)Item).TargetPath))
Expand Down Expand Up @@ -185,7 +185,7 @@ private async void GetFolderSize(BaseStorageFolder storageFolder, CancellationTo
{
var folderSize = await fileSizeTask;
ViewModel.ItemSizeBytes = folderSize;
ViewModel.ItemSize = $"{ByteSize.FromBytes(folderSize).ToBinaryString().ConvertSizeAbbreviation()} ({ByteSize.FromBytes(folderSize).Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})";
ViewModel.ItemSize = folderSize.ToLongSizeString();
}
catch (Exception ex)
{
Expand Down
5 changes: 2 additions & 3 deletions src/Files/ViewModels/Properties/LibraryProperties.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using ByteSizeLib;
using Files.Enums;
using Files.Enums;
using Files.Extensions;
using Files.Filesystem;
using Files.Filesystem.StorageItems;
Expand Down Expand Up @@ -122,7 +121,7 @@ private async void GetLibrarySize(List<BaseStorageFolder> storageFolders, Cancel
librarySize += await Task.Run(async () => await CalculateFolderSizeAsync(folder.Path, token));
}
ViewModel.ItemSizeBytes = librarySize;
ViewModel.ItemSize = $"{ByteSize.FromBytes(librarySize).ToBinaryString().ConvertSizeAbbreviation()} ({ByteSize.FromBytes(librarySize).Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})";
ViewModel.ItemSize = librarySize.ToLongSizeString();
}
catch (Exception ex)
{
Expand Down
8 changes: 3 additions & 5 deletions src/Files/ViewModels/SelectedItemsPropertiesViewModel.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
using ByteSizeLib;
using Files.Extensions;
using Files.ViewModels.Properties;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Microsoft.Toolkit.Mvvm.Input;
using Microsoft.Toolkit.Uwp;
using System;
using System.Collections.ObjectModel;
using Windows.UI.Xaml;
Expand Down Expand Up @@ -287,7 +285,7 @@ public ulong DriveUsedSpaceValue
set
{
SetProperty(ref driveUsedSpaceValue, value);
DriveUsedSpace = $"{ByteSize.FromBytes(DriveUsedSpaceValue).ToBinaryString().ConvertSizeAbbreviation()} ({ByteSize.FromBytes(DriveUsedSpaceValue).Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})";
DriveUsedSpace = DriveUsedSpaceValue.ToLongSizeString();
OnPropertyChanged(nameof(DrivePercentageValue));
}
}
Expand Down Expand Up @@ -320,7 +318,7 @@ public ulong DriveFreeSpaceValue
set
{
SetProperty(ref driveFreeSpaceValue, value);
DriveFreeSpace = $"{ByteSize.FromBytes(DriveFreeSpaceValue).ToBinaryString().ConvertSizeAbbreviation()} ({ByteSize.FromBytes(DriveFreeSpaceValue).Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})";
DriveFreeSpace = DriveFreeSpaceValue.ToLongSizeString();
}
}

Expand Down Expand Up @@ -420,7 +418,7 @@ public ulong DriveCapacityValue
set
{
SetProperty(ref driveCapacityValue, value);
DriveCapacity = $"{ByteSize.FromBytes(DriveCapacityValue).ToBinaryString().ConvertSizeAbbreviation()} ({ByteSize.FromBytes(DriveCapacityValue).Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})";
DriveCapacity = DriveCapacityValue.ToLongSizeString();
OnPropertyChanged(nameof(DrivePercentageValue));
}
}
Expand Down