Documentation
¶
Overview ¶
Package fileutil provides utility functions for working with file paths and file operations.
Index ¶
- func CalculateDirectorySize(dirPath string) int64
- func CopyFile(src, dst string) error
- func DirExists(path string) bool
- func ExtractFileFromTar(data []byte, path string) ([]byte, error)
- func FileExists(path string) bool
- func IsDirEmpty(path string) bool
- func ValidateAbsolutePath(path string) (string, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CalculateDirectorySize ¶ added in v0.47.0
CalculateDirectorySize recursively calculates the total size of files in a directory.
func ExtractFileFromTar ¶ added in v0.49.0
ExtractFileFromTar extracts a single file from a tar archive. Uses Go's standard archive/tar for cross-platform compatibility instead of spawning an external tar process which may not be available on all platforms.
func FileExists ¶ added in v0.47.0
FileExists checks if a file exists and is not a directory.
func IsDirEmpty ¶ added in v0.47.0
IsDirEmpty checks if a directory is empty.
func ValidateAbsolutePath ¶
ValidateAbsolutePath validates that a file path is absolute and safe to use. It performs the following security checks:
- Cleans the path using filepath.Clean to normalize . and .. components
- Verifies the path is absolute to prevent relative path traversal attacks
Returns the cleaned absolute path if validation succeeds, or an error if:
- The path is empty
- The path is relative (not absolute)
This function should be used before any file operations (read, write, stat, etc.) to ensure defense-in-depth security against path traversal vulnerabilities.
Example:
cleanPath, err := fileutil.ValidateAbsolutePath(userInputPath)
if err != nil {
return fmt.Errorf("invalid path: %w", err)
}
content, err := os.ReadFile(cleanPath)
Types ¶
This section is empty.