All Posts by Date or last 15, 30, 90 or 180 days.
also by Lloyd: diglloyd.com photography and WindInMyFace.com

Thank you for buying via links and ads on this site,
which earn me advertising fees or commissions.
As an Amazon Associate I earn from qualifying purchases.

Other World Computing...
B&H Photo...
Amazon
As an Amazon Associate I earn from qualifying purchases.
Capacities up to 56TB and speeds up to 1527MB/s
877-865-7002
Today’s Deal Zone Items... Handpicked deals...
$2998 $2898
SAVE $100

$3049 $2399
SAVE $650

$3508 $2998
SAVE $510

$998 $848
SAVE $150

$3999 $2998
SAVE $1001

$2299 $2299
SAVE $click

$1597 $1297
SAVE $300

$80 $33
SAVE $46

$2299 $2299
SAVE $click

$1898 $1498
SAVE $400

$2799 $2799
SAVE $click

$2299 $2299
SAVE $click

$600 $400
SAVE $200

$240 $175
SAVE $65

$699 $499
SAVE $200

$270 $270
SAVE $click

$1599 $1398
SAVE $201

$2027 $1397
SAVE $630

$1699 $999
SAVE $700

$180 $100
SAVE $80

$1199 $1099
SAVE $100

$1199 $1099
SAVE $100

$999 $949
SAVE $50

$270 $270
SAVE $click

$1699 $999
SAVE $700

java.nio.file.Path and java.io.File Forward Slash and Backward Slash in File Names on HFS+ and FAT or ExFat File Systems

OS X uses the HFS+ file system (soon to also use the new APFS). But FAT and ExFAT can also be mounted on the desktop. Maybe NTFS also (though perhaps read only). NFS can be mounted remotely.

In developing IntegrityChecker Java version (icj) I wanted to be fully cross-platform, but I’ve been stymied by a Java API bug: there is no way to designate a file or folder name that contains the path-separator characters / and \ (forward and backward slashes).

Not in the traditional java.io.File, and not in the newer java.nio.Path. The API just does not deal with file names that use path separators. Attempting to create a File or Path with slashes yields a “file not found” error, since the slashes are interpreted as folders separators. Listing files as in File.listFiles() or walking the file tree as in java.nio.file.SimpleFileVisitor deliver files with the colon ':' character substituted for the forward slash '/'. Yikes.

For example the filename “_forward_ 03/05/1998.txt” becomes “_forward_ 03:05:1998.txt”. On OS X at least, using the mangled name actually works—the APIs interpret the color character as a slash. But that’s OS X, and I don’t know what Java does on Windows or Linux or etc.

I’ve tried escaping, as in “//” and “\/” and so on—no luck. I’m stymied.

When a slash is a colon

Apple has its own odd behaviors: some file system API calls substitute the colon ':' character for forward slashes in file names, either on FAT or ExFAT or HFS+. But not all!

So does Java, since it apparently gets the names from Apple APIs that do this substitution.

This is true in the traditional file system APIs (PBGetCatalogInfo) as well as in Terminal:

diglloydMP:yikes! lloyd$ ls -l
total 64
-rwxrwxrwx@ 1 lloyd staff 9 Jul 30 12:09 _back_ 08\17\1998.txt
-rwxrwxrwx@ 1 lloyd staff 9 Jul 30 12:09 _forward_ 03:05:1998.txt <=== / characters become :
OWC Thunderblade Thunderbolt 3 SSD

Blazing fast, up to 16TB.

YEE HAH!



√ No more slow and noisy hard drives!
OWC Accelsior 4M2 PCIe SSD
6000 MB/sec!
Mac or PC.


Ideal for Lightroom, Photoshop, video.
Capacity up to 16TB!

Save the tax, we pay you back, instantly!

diglloyd.com | Terms of Use | PRIVACY POLICY
Contact | About Lloyd Chambers | Consulting | Photo Tours
Mailing Lists | RSS Feeds | Twitter
Copyright © 2020 diglloyd Inc, all rights reserved.
Display info: __RETINA_INFO_STATUS__