mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-06-06 18:30:57 +00:00

# Description of Changes Add Unit Test for FileInfo.getFormattedFileSize Closes #3089 --- ## Checklist ### General - [x] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [x] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md) (if applicable) - [x] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md) (if applicable) - [x] I have performed a self-review of my own code - [x] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [x] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing) for more details.
51 lines
1.6 KiB
Java
51 lines
1.6 KiB
Java
package stirling.software.SPDF.utils;
|
|
|
|
import java.nio.file.Path;
|
|
import java.nio.file.Paths;
|
|
import java.time.LocalDateTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.Locale;
|
|
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.Data;
|
|
|
|
@AllArgsConstructor
|
|
@Data
|
|
public class FileInfo {
|
|
private static final DateTimeFormatter DATE_FORMATTER =
|
|
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
private String fileName;
|
|
private String filePath;
|
|
private LocalDateTime modificationDate;
|
|
private long fileSize;
|
|
private LocalDateTime creationDate;
|
|
|
|
// Converts the file path string to a Path object.
|
|
public Path getFilePathAsPath() {
|
|
return Paths.get(filePath);
|
|
}
|
|
|
|
// Formats the file size into a human-readable string.
|
|
public String getFormattedFileSize() {
|
|
if (fileSize >= 1024 * 1024 * 1024) {
|
|
return String.format(Locale.US, "%.2f GB", fileSize / (1024.0 * 1024 * 1024));
|
|
} else if (fileSize >= 1024 * 1024) {
|
|
return String.format(Locale.US, "%.2f MB", fileSize / (1024.0 * 1024));
|
|
} else if (fileSize >= 1024) {
|
|
return String.format(Locale.US, "%.2f KB", fileSize / 1024.0);
|
|
} else {
|
|
return String.format("%d Bytes", fileSize);
|
|
}
|
|
}
|
|
|
|
// Formats the modification date to a string.
|
|
public String getFormattedModificationDate() {
|
|
return modificationDate.format(DATE_FORMATTER);
|
|
}
|
|
|
|
// Formats the creation date to a string.
|
|
public String getFormattedCreationDate() {
|
|
return creationDate.format(DATE_FORMATTER);
|
|
}
|
|
}
|