Go to file
lordwelch d0260a3181 Add test for null byte 2020-12-21 12:11:44 -08:00
cmd Initial commit 2020-10-11 21:37:03 -07:00
LICENSE Initial commit 2020-10-11 21:37:03 -07:00
README.md Initial commit 2020-10-11 21:37:03 -07:00
base.go Initial commit 2020-10-11 21:37:03 -07:00
const.go Initial commit 2020-10-11 21:37:03 -07:00
go.mod Initial commit 2020-10-11 21:37:03 -07:00
go.sum Initial commit 2020-10-11 21:37:03 -07:00
pathvalidate.go Initial commit 2020-10-11 21:37:03 -07:00
pathvalidate_test.go Add test for null byte 2020-12-21 12:11:44 -08:00

README.md

pathvalidate

PkgGoDev Go Report Card

Path santization based on pathvalidate from Python https://pypi.org/project/pathvalidate/

import path: github.com/lordwelch/pathvalidate

Example:

# Validate Path
err := pathvalidate.ValidateFilepath("Simple/Name", '_')
sanitized, err := pathvalidate.SanitizeFilepath("Simple/Name", '_')

# Validate Filename
err := pathvalidate.ValidateFilename("Simple/Name")
sanitized, err := pathvalidate.SanitizeFilename("Simple/Name")

Output:

# Validate Path
err: <nil>
sanitized: Simple/Name err: <nil>

# Validate Filename
err: pathvalidate: invalid character: '/' (0x2f)
sanitized: Simple_Name err: <nil>

defaults

Windows

Invalid Path: Unicode categories: Cc, Cf, Z excluding space + :*?"<>|

Invalid Filename: Invalid Path + / + \

Max Path Length: 260

Reserved words

NTFS Reserved Names: $MFT, $MFTMIRR, $LOGFILE $VOLUME, $ATTRDEF, $BITMAP, $BOOT, $BADCLUS, $SECURE, $UPCASE, $EXTEND, $QUOTA, $OBJID, $REPARSE

Windows Reserved Names: CON, PRN, AUX, CLOCK$, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, COM10, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, LPT10

Linux

Invalid Path: Unicode categories: Cc, Cf, Z excluding space +

Invalid Filename: Invalid Path + /

Max Path Length: 4096

Reserved words

None

Darwin

Invalid Path: Unicode categories: Cc, Cf, Z excluding space +

Invalid Filename: Invalid Path + /

Max Path Length: 4096

Reserved words

: