Skip to content

Commit 6ad7271

Browse files
authored
Extension for size string (#7257)
1 parent 845882b commit 6ad7271

16 files changed

+47
-56
lines changed

src/Files/BaseLayout.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ internal set
274274
if (isSizeKnown)
275275
{
276276
long size = selectedItems.Sum(item => item.FileSizeBytes);
277-
SelectedItemsPropertiesViewModel.ItemSize = ByteSizeLib.ByteSize.FromBytes(size).ToBinaryString().ConvertSizeAbbreviation();
277+
SelectedItemsPropertiesViewModel.ItemSize = size.ToSizeString();
278278
}
279279
}
280280
}
@@ -629,7 +629,7 @@ private void SelectedItem_PropertyChanged(object sender, PropertyChangedEventArg
629629
{
630630
long size = items.Sum(item => item.FileSizeBytes);
631631
SelectedItemsPropertiesViewModel.ItemSizeBytes = size;
632-
SelectedItemsPropertiesViewModel.ItemSize = ByteSizeLib.ByteSize.FromBytes(size).ToBinaryString().ConvertSizeAbbreviation();
632+
SelectedItemsPropertiesViewModel.ItemSize = size.ToSizeString();
633633
}
634634
}
635635
}

src/Files/DataModels/NavigationControlItems/DriveItem.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,8 +187,8 @@ public async Task UpdatePropertiesAsync()
187187

188188
SpaceText = string.Format(
189189
"DriveFreeSpaceAndCapacity".GetLocalized(),
190-
FreeSpace.ToBinaryString().ConvertSizeAbbreviation(),
191-
MaxSpace.ToBinaryString().ConvertSizeAbbreviation());
190+
FreeSpace.ToSizeString(),
191+
MaxSpace.ToSizeString());
192192

193193
if (FreeSpace.Bytes > 0 && MaxSpace.Bytes > 0) // Make sure we don't divide by 0
194194
{

src/Files/Extensions/StringExtensions.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Microsoft.Toolkit.Uwp;
1+
using ByteSizeLib;
2+
using Microsoft.Toolkit.Uwp;
23
using System;
34
using System.Collections.Generic;
45
using System.IO;
@@ -89,5 +90,13 @@ public static string ConvertSizeAbbreviation(this string value)
8990
}
9091
return value;
9192
}
93+
94+
public static string ToSizeString(this long size) => ByteSize.FromBytes(size).ToSizeString();
95+
public static string ToSizeString(this ulong size) => ByteSize.FromBytes(size).ToSizeString();
96+
public static string ToSizeString(this ByteSize size) => size.ToBinaryString().ConvertSizeAbbreviation();
97+
98+
public static string ToLongSizeString(this long size) => ByteSize.FromBytes(size).ToLongSizeString();
99+
public static string ToLongSizeString(this ulong size) => ByteSize.FromBytes(size).ToLongSizeString();
100+
public static string ToLongSizeString(this ByteSize size) => $"{size.ToSizeString()} ({size.Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})";
92101
}
93-
}
102+
}

src/Files/Filesystem/FolderHelpers.cs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using ByteSizeLib;
2-
using Files.Extensions;
1+
using Files.Extensions;
32
using Files.Filesystem.StorageItems;
43
using System;
54
using System.Collections.Generic;
@@ -69,14 +68,12 @@ public static async void UpdateFolder(ListedItem folder, CancellationToken cance
6968

7069
await dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
7170
{
72-
folder.FileSize = GetSizeString(0);
71+
folder.FileSize = 0L.ToSizeString();
7372
});
7473

7574
_ = await Calculate(folder.ItemPath);
7675
}
7776

78-
static string GetSizeString(long size) => ByteSize.FromBytes(size).ToBinaryString().ConvertSizeAbbreviation();
79-
8077
async Task<long> Calculate(string folderPath)
8178
{
8279
if (string.IsNullOrEmpty(folderPath))
@@ -113,7 +110,7 @@ await dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
113110
if (size > folder.FileSizeBytes)
114111
{
115112
folder.FileSizeBytes = size;
116-
folder.FileSize = GetSizeString(size);
113+
folder.FileSize = size.ToSizeString();
117114
};
118115
});
119116

src/Files/Filesystem/ListedItem.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using ByteSizeLib;
2-
using Files.Enums;
1+
using Files.Enums;
32
using Files.Extensions;
43
using Files.Filesystem.Cloud;
54
using Files.Filesystem.StorageItems;
@@ -432,7 +431,7 @@ public BaseStorageFile ItemFile
432431
public string Key { get; set; }
433432

434433
/// <summary>
435-
/// Manually check if a folder path contains child items,
434+
/// Manually check if a folder path contains child items,
436435
/// updating the ContainsFilesOrFolders property from its default value of true
437436
/// </summary>
438437
public void UpdateContainsFilesFolders()
@@ -500,7 +499,7 @@ public FtpItem(FtpListItem item, string folder, string dateReturnFormat = null)
500499
FileSizeBytes = item.Size;
501500
ContainsFilesOrFolders = !isFile;
502501
FileImage = null;
503-
FileSize = ByteSize.FromBytes(FileSizeBytes).ToBinaryString().ConvertSizeAbbreviation();
502+
FileSize = FileSizeBytes.ToSizeString();
504503
Opacity = 1;
505504
IsHiddenItem = false;
506505
}

src/Files/Filesystem/Search/FolderSearch.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using ByteSizeLib;
2-
using Files.Common;
1+
using Files.Common;
32
using Files.Extensions;
43
using Files.Filesystem.StorageItems;
54
using Files.Helpers;
@@ -208,7 +207,7 @@ private async Task SearchTagsAsync(string folder, IList<ListedItem> results, Can
208207
{
209208
var isSystem = ((FileAttributes)findData.dwFileAttributes & FileAttributes.System) == FileAttributes.System;
210209
var isHidden = ((FileAttributes)findData.dwFileAttributes & FileAttributes.Hidden) == FileAttributes.Hidden;
211-
210+
212211
bool shouldBeListed = !isHidden || (UserSettingsService.PreferencesSettingsService.AreHiddenItemsVisible && (!isSystem || !UserSettingsService.PreferencesSettingsService.AreSystemItemsHidden));
213212

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

420-
var itemSize = ByteSize.FromBytes(props.Size).ToBinaryString().ConvertSizeAbbreviation();
419+
var itemSize = props.Size.ToSizeString();
421420

422421
listedItem = new ListedItem(null)
423422
{

src/Files/Filesystem/StorageEnumerators/UniversalStorageEnumerator.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
1-
using ByteSizeLib;
2-
using Files.Extensions;
1+
using Files.Extensions;
32
using Files.Filesystem.StorageItems;
43
using Files.Helpers;
5-
using Files.Services;
6-
using Files.Views.LayoutModes;
7-
using Microsoft.Toolkit.Mvvm.DependencyInjection;
8-
using Microsoft.Toolkit.Uwp;
94
using System;
105
using System.Collections.Generic;
116
using System.Diagnostics;
@@ -193,7 +188,7 @@ CancellationToken cancellationToken
193188
var itemModifiedDate = basicProperties.DateModified;
194189
var itemCreatedDate = file.DateCreated;
195190
var itemPath = string.IsNullOrEmpty(file.Path) ? PathNormalization.Combine(currentStorageFolder.Path, file.Name) : file.Path;
196-
var itemSize = ByteSize.FromBytes(basicProperties.Size).ToBinaryString().ConvertSizeAbbreviation();
191+
var itemSize = basicProperties.Size.ToSizeString();
197192
var itemSizeBytes = basicProperties.Size;
198193
var itemType = file.DisplayType;
199194
var itemFileExtension = file.FileType;

src/Files/Filesystem/StorageEnumerators/Win32StorageEnumerator.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using ByteSizeLib;
2-
using Files.Common;
1+
using Files.Common;
32
using Files.Extensions;
43
using Files.Filesystem.StorageItems;
54
using Files.Helpers;
@@ -203,7 +202,7 @@ CancellationToken cancellationToken
203202
}
204203

205204
long itemSizeBytes = findData.GetSize();
206-
var itemSize = ByteSize.FromBytes(itemSizeBytes).ToBinaryString().ConvertSizeAbbreviation();
205+
var itemSize = itemSizeBytes.ToSizeString();
207206
string itemType = "ItemTypeFile".GetLocalized();
208207
string itemFileExtension = null;
209208

src/Files/ViewModels/ItemViewModel.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -814,7 +814,7 @@ await CoreApplication.MainView.DispatcherQueue.EnqueueAsync(async () =>
814814
item.FileImage.DecodePixelType = DecodePixelType.Logical;
815815
item.FileImage.DecodePixelWidth = (int)thumbnailSize;
816816
await item.FileImage.SetSourceAsync(Thumbnail);
817-
if (!string.IsNullOrEmpty(item.FileExtension) &&
817+
if (!string.IsNullOrEmpty(item.FileExtension) &&
818818
!item.IsShortcutItem && !item.IsExecutable &&
819819
!ImagePreviewViewModel.Extensions.Contains(item.FileExtension))
820820
{
@@ -1400,7 +1400,7 @@ await Task.Run(async () =>
14001400
client.Host = FtpHelpers.GetFtpHost(path);
14011401
client.Port = FtpHelpers.GetFtpPort(path);
14021402
client.Credentials = FtpManager.Credentials.Get(client.Host, FtpManager.Anonymous);
1403-
1403+
14041404
static async Task<FtpProfile> WrappedAutoConnectFtpAsync(FtpClient client)
14051405
{
14061406
try
@@ -1411,7 +1411,7 @@ static async Task<FtpProfile> WrappedAutoConnectFtpAsync(FtpClient client)
14111411
{
14121412
return null;
14131413
}
1414-
1414+
14151415
throw new InvalidOperationException();
14161416
}
14171417

@@ -2155,7 +2155,7 @@ await CoreApplication.MainView.DispatcherQueue.EnqueueAsync(() =>
21552155
if (result.Value.Size != null)
21562156
{
21572157
item.FileSizeBytes = result.Value.Size.Value;
2158-
item.FileSize = ByteSizeLib.ByteSize.FromBytes(item.FileSizeBytes).ToBinaryString().ConvertSizeAbbreviation();
2158+
item.FileSize = item.FileSizeBytes.ToSizeString();
21592159
}
21602160
}
21612161
}

src/Files/ViewModels/Previews/ArchivePreviewViewModel.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using ByteSizeLib;
2-
using Files.Extensions;
1+
using Files.Extensions;
32
using Files.Filesystem;
43
using Files.ViewModels.Properties;
54
using ICSharpCode.SharpZipLib.Zip;
@@ -53,7 +52,7 @@ public override async Task<List<FileProperty>> LoadPreviewAndDetails()
5352
details.Add(new FileProperty()
5453
{
5554
NameResource = "PropertyUncompressedSize",
56-
Value = $"{ByteSize.FromBytes(totalSize).ToBinaryString().ConvertSizeAbbreviation()} ({ByteSize.FromBytes(totalSize).Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})",
55+
Value = totalSize.ToLongSizeString(),
5756
});
5857

5958
_ = await base.LoadPreviewAndDetails(); // Loads the thumbnail preview

src/Files/ViewModels/Properties/BaseProperties.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using ByteSizeLib;
2-
using Files.Enums;
1+
using Files.Enums;
32
using Files.Extensions;
43
using Microsoft.Toolkit.Uwp;
54
using System;
@@ -86,7 +85,7 @@ public async Task<long> CalculateFolderSizeAsync(string path, CancellationToken
8685
await Dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
8786
{
8887
ViewModel.ItemSizeBytes = size;
89-
ViewModel.ItemSize = ByteSize.FromBytes(size).ToBinaryString().ConvertSizeAbbreviation();
88+
ViewModel.ItemSize = size.ToSizeString();
9089
SetItemsCountString();
9190
});
9291
}

src/Files/ViewModels/Properties/CombinedProperties.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using ByteSizeLib;
2-
using Files.Extensions;
1+
using Files.Extensions;
32
using Files.Filesystem;
43
using Files.Helpers;
54
using Microsoft.Toolkit.Uwp;
@@ -94,7 +93,7 @@ public override async void GetSpecialProperties()
9493
ViewModel.ItemSizeProgressVisibility = Visibility.Collapsed;
9594

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

src/Files/ViewModels/Properties/FileProperties.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using ByteSizeLib;
2-
using Files.Extensions;
1+
using Files.Extensions;
32
using Files.Filesystem;
43
using Files.Filesystem.StorageItems;
54
using Files.Helpers;
@@ -107,7 +106,7 @@ public override async void GetSpecialProperties()
107106
Item.ItemPath, System.IO.FileAttributes.Hidden);
108107

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

112111
var fileIconData = await FileThumbnailHelper.LoadIconFromPathAsync(Item.ItemPath, 80, Windows.Storage.FileProperties.ThumbnailMode.SingleItem);
113112
if (fileIconData != null)

src/Files/ViewModels/Properties/FolderProperties.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public async override void GetSpecialProperties()
8989
if (Item.IsShortcutItem)
9090
{
9191
ViewModel.ItemSizeVisibility = Visibility.Visible;
92-
ViewModel.ItemSize = $"{ByteSize.FromBytes(Item.FileSizeBytes).ToBinaryString().ConvertSizeAbbreviation()} ({ByteSize.FromBytes(Item.FileSizeBytes).Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})";
92+
ViewModel.ItemSize = Item.FileSizeBytes.ToLongSizeString();
9393
ViewModel.ItemCreatedTimestamp = Item.ItemDateCreated;
9494
ViewModel.ItemAccessedTimestamp = Item.ItemDateAccessed;
9595
if (Item.IsLinkItem || string.IsNullOrWhiteSpace(((ShortcutItem)Item).TargetPath))
@@ -185,7 +185,7 @@ private async void GetFolderSize(BaseStorageFolder storageFolder, CancellationTo
185185
{
186186
var folderSize = await fileSizeTask;
187187
ViewModel.ItemSizeBytes = folderSize;
188-
ViewModel.ItemSize = $"{ByteSize.FromBytes(folderSize).ToBinaryString().ConvertSizeAbbreviation()} ({ByteSize.FromBytes(folderSize).Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})";
188+
ViewModel.ItemSize = folderSize.ToLongSizeString();
189189
}
190190
catch (Exception ex)
191191
{

src/Files/ViewModels/Properties/LibraryProperties.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using ByteSizeLib;
2-
using Files.Enums;
1+
using Files.Enums;
32
using Files.Extensions;
43
using Files.Filesystem;
54
using Files.Filesystem.StorageItems;
@@ -122,7 +121,7 @@ private async void GetLibrarySize(List<BaseStorageFolder> storageFolders, Cancel
122121
librarySize += await Task.Run(async () => await CalculateFolderSizeAsync(folder.Path, token));
123122
}
124123
ViewModel.ItemSizeBytes = librarySize;
125-
ViewModel.ItemSize = $"{ByteSize.FromBytes(librarySize).ToBinaryString().ConvertSizeAbbreviation()} ({ByteSize.FromBytes(librarySize).Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})";
124+
ViewModel.ItemSize = librarySize.ToLongSizeString();
126125
}
127126
catch (Exception ex)
128127
{

src/Files/ViewModels/SelectedItemsPropertiesViewModel.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
using ByteSizeLib;
21
using Files.Extensions;
32
using Files.ViewModels.Properties;
43
using Microsoft.Toolkit.Mvvm.ComponentModel;
54
using Microsoft.Toolkit.Mvvm.Input;
6-
using Microsoft.Toolkit.Uwp;
75
using System;
86
using System.Collections.ObjectModel;
97
using Windows.UI.Xaml;
@@ -287,7 +285,7 @@ public ulong DriveUsedSpaceValue
287285
set
288286
{
289287
SetProperty(ref driveUsedSpaceValue, value);
290-
DriveUsedSpace = $"{ByteSize.FromBytes(DriveUsedSpaceValue).ToBinaryString().ConvertSizeAbbreviation()} ({ByteSize.FromBytes(DriveUsedSpaceValue).Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})";
288+
DriveUsedSpace = DriveUsedSpaceValue.ToLongSizeString();
291289
OnPropertyChanged(nameof(DrivePercentageValue));
292290
}
293291
}
@@ -320,7 +318,7 @@ public ulong DriveFreeSpaceValue
320318
set
321319
{
322320
SetProperty(ref driveFreeSpaceValue, value);
323-
DriveFreeSpace = $"{ByteSize.FromBytes(DriveFreeSpaceValue).ToBinaryString().ConvertSizeAbbreviation()} ({ByteSize.FromBytes(DriveFreeSpaceValue).Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})";
321+
DriveFreeSpace = DriveFreeSpaceValue.ToLongSizeString();
324322
}
325323
}
326324

@@ -420,7 +418,7 @@ public ulong DriveCapacityValue
420418
set
421419
{
422420
SetProperty(ref driveCapacityValue, value);
423-
DriveCapacity = $"{ByteSize.FromBytes(DriveCapacityValue).ToBinaryString().ConvertSizeAbbreviation()} ({ByteSize.FromBytes(DriveCapacityValue).Bytes:#,##0} {"ItemSizeBytes".GetLocalized()})";
421+
DriveCapacity = DriveCapacityValue.ToLongSizeString();
424422
OnPropertyChanged(nameof(DrivePercentageValue));
425423
}
426424
}

0 commit comments

Comments
 (0)