nice
ok with my debug lines and no preexisting F:\FOO
$ go run MkDirAll-test.go
14:23:19 WARNING: ##### in f.MkdirAll( 'FOO' , 777 ) from main.main
14:23:19 WARNING: ##### in f.MkdirAll pre-rooted f.root='\\?\F:\' path='FOO'
14:23:19 WARNING: ##### in f.MkdirAll post-rooted f.root='\\?\F:\' path='\\?\F:\FOO'
14:23:19 WARNING: ##### in f.mkdirAll( '\\?\F:\FOO' , -r----x--x )
14:23:19 WARNING: ##### in f.MkdirAll( 'FOO\BAR' , 777 ) from main.main
14:23:19 WARNING: ##### in f.MkdirAll pre-rooted f.root='\\?\F:\' path='FOO\BAR'
14:23:19 WARNING: ##### in f.MkdirAll post-rooted f.root='\\?\F:\' path='\\?\F:\FOO\BAR'
14:23:19 WARNING: ##### in f.mkdirAll( '\\?\F:\FOO\BAR' , -r----x--x )
14:23:19 WARNING: ##### call os.MkdirAll( '\\?\F:\FOO' , -r----x--x )
14:23:19 WARNING: ##### called os.MkdirAll( '\\?\F:\FOO' , -r----x--x ) = <nil>
14:23:19 WARNING: ##### in f.MkdirAll( '.' , 777 ) from main.main
14:23:19 WARNING: ##### in f.MkdirAll pre-rooted f.root='\\?\F:\FOO' path='.'
14:23:19 WARNING: ##### in f.MkdirAll post-rooted f.root='\\?\F:\FOO' path='\\?\F:\FOO\'
14:23:19 WARNING: ##### in f.mkdirAll( '\\?\F:\FOO\' , -r----x--x )
14:23:19 WARNING: ##### in f.MkdirAll( 'BAR' , 777 ) from main.main
14:23:19 WARNING: ##### in f.MkdirAll pre-rooted f.root='\\?\F:\FOO' path='BAR'
14:23:19 WARNING: ##### in f.MkdirAll post-rooted f.root='\\?\F:\FOO' path='\\?\F:\FOO\BAR'
14:23:19 WARNING: ##### in f.mkdirAll( '\\?\F:\FOO\BAR' , -r----x--x )
14:23:19 WARNING: ##### in f.MkdirAll( 'BAR' , 777 ) from main.main
14:23:19 WARNING: ##### in f.MkdirAll pre-rooted f.root='\\?\F:\FOO\BAR' path='BAR'
14:23:19 WARNING: ##### in f.MkdirAll post-rooted f.root='\\?\F:\FOO\BAR' path='\\?\F:\FOO\BAR\BAR'
14:23:19 WARNING: ##### in f.mkdirAll( '\\?\F:\FOO\BAR\BAR' , -r----x--x )
14:23:19 WARNING: ##### call os.MkdirAll( '\\?\F:\FOO\BAR' , -r----x--x )
14:23:19 WARNING: ##### called os.MkdirAll( '\\?\F:\FOO\BAR' , -r----x--x ) = <nil>
Buit this code creates F:\FOO
and then F:\FOO\BAR
.
My intend was do do /foo/bar first ( mkdir -p ) .
diff --git a/MkDirAll-test.go b/MkDirAll-test.go
index e61ff1d..4c8e1dc 100644
--- a/MkDirAll-test.go
+++ b/MkDirAll-test.go
@@ -9,7 +9,7 @@ import (
func main() {
base := `F:\`
testFs := fs.NewFilesystem(fs.FilesystemTypeBasic, base)
- for _, targ := range []string{`FOO`, `FOO\BAR`} {
+ for _, targ := range []string{`FOO\BAR`, `FOO`} {
if err := testFs.MkdirAll(targ, 777); err != nil {
fmt.Printf("Base: %v, target: %v, err: %v", base, targ, err)
}
Now it fails exactly as in syncthing:
$ go run MkDirAll-test.go
14:26:10 WARNING: ##### in f.MkdirAll( 'FOO\BAR' , 777 ) from main.main
14:26:10 WARNING: ##### in f.MkdirAll pre-rooted f.root='\\?\F:\' path='FOO\BAR'
14:26:10 WARNING: ##### in f.MkdirAll post-rooted f.root='\\?\F:\' path='\\?\F:\FOO\BAR'
14:26:10 WARNING: ##### in f.mkdirAll( '\\?\F:\FOO\BAR' , -r----x--x )
14:26:10 WARNING: ##### call os.MkdirAll( '\\?\F:\FOO' , -r----x--x )
14:26:10 WARNING: ##### called os.MkdirAll( '\\?\F:\FOO' , -r----x--x ) = mkdir \\?: The filename, directory name, or volume label syntax is incorrect.
Base: F:\, target: FOO\BAR, err: mkdir \\?: The filename, directory name, or volume label syntax is incorrect.14:26:10 WARNING: ##### in f.MkdirAll( 'FOO' , 777 ) from main.main
14:26:10 WARNING: ##### in f.MkdirAll pre-rooted f.root='\\?\F:\' path='FOO'
14:26:10 WARNING: ##### in f.MkdirAll post-rooted f.root='\\?\F:\' path='\\?\F:\FOO'
14:26:10 WARNING: ##### in f.mkdirAll( '\\?\F:\FOO' , -r----x--x )
14:26:10 WARNING: ##### in f.MkdirAll( '.' , 777 ) from main.main
14:26:10 WARNING: ##### in f.MkdirAll pre-rooted f.root='\\?\F:\FOO' path='.'
14:26:10 WARNING: ##### in f.MkdirAll post-rooted f.root='\\?\F:\FOO' path='\\?\F:\FOO\'
14:26:10 WARNING: ##### in f.mkdirAll( '\\?\F:\FOO\' , -r----x--x )
14:26:10 WARNING: ##### in f.MkdirAll( 'BAR' , 777 ) from main.main
14:26:10 WARNING: ##### in f.MkdirAll pre-rooted f.root='\\?\F:\FOO' path='BAR'
14:26:10 WARNING: ##### in f.MkdirAll post-rooted f.root='\\?\F:\FOO' path='\\?\F:\FOO\BAR'
14:26:10 WARNING: ##### in f.mkdirAll( '\\?\F:\FOO\BAR' , -r----x--x )
14:26:10 WARNING: ##### call os.MkdirAll( '\\?\F:\FOO' , -r----x--x )
14:26:10 WARNING: ##### called os.MkdirAll( '\\?\F:\FOO' , -r----x--x ) = <nil>
14:26:10 WARNING: ##### in f.MkdirAll( 'BAR' , 777 ) from main.main
14:26:10 WARNING: ##### in f.MkdirAll pre-rooted f.root='\\?\F:\FOO\BAR' path='BAR'
14:26:10 WARNING: ##### in f.MkdirAll post-rooted f.root='\\?\F:\FOO\BAR' path='\\?\F:\FOO\BAR\BAR'
14:26:10 WARNING: ##### in f.mkdirAll( '\\?\F:\FOO\BAR\BAR' , -r----x--x )
14:26:10 WARNING: ##### call os.MkdirAll( '\\?\F:\FOO\BAR' , -r----x--x )
14:26:10 WARNING: ##### called os.MkdirAll( '\\?\F:\FOO\BAR' , -r----x--x ) = <nil>