public void InitializeCluster() { //Create fragment clusterFile for cluster NumberClusterUse = (int)Math.Ceiling((decimal)Size / Settings.Settings.ClusterSize); if (NumberClusterUse <= 0) { return; } var fragmentFileSize = Size; if (NumberClusterUse > 1) { fragmentFileSize = Settings.Settings.ClusterSize; } var totalFileSize = Size; for (var i = 1; i <= NumberClusterUse; i++) { var fragmentFile = new FragmentClusterFile { Name = Name + $"_{i}", Size = fragmentFileSize }; FragmentFiles.Add(fragmentFile); totalFileSize -= Settings.Settings.ClusterSize; if (totalFileSize < Settings.Settings.ClusterSize) { fragmentFileSize = totalFileSize; } } }
public void IncreaseSizeFile(int _oldSize) { //New number cluster var nCluster = (int)Math.Ceiling((decimal)Size / Settings.Settings.ClusterSize); var remainingSize = Size - _oldSize; var color = FragmentFiles.First().Color; //Change size last cluster var lastFragmentFile = FragmentFiles.Last(); remainingSize -= (Settings.Settings.ClusterSize - lastFragmentFile.Size); lastFragmentFile.Size = Settings.Settings.ClusterSize; //Calculate size of fragmentfile var calcSize = remainingSize; if (calcSize > Settings.Settings.ClusterSize) { calcSize = Settings.Settings.ClusterSize; } for (var i = NumberClusterUse + 1; i <= nCluster; i++) { FragmentFiles.Add(new FragmentClusterFile { Name = Name + $"_{i}", Size = calcSize, Color = color }); remainingSize -= Settings.Settings.ClusterSize; if (remainingSize < Settings.Settings.ClusterSize) { calcSize = remainingSize; } } //Update NumberClusterUse NumberClusterUse = nCluster; }