www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Valid File Path

reply vino <vino.bheeman hotmail.com> writes:
Hi All,

   Can you help me what is wrong in the below program, as the 
output is empty.

import std.stdio, std.path;

void main ()
{
version (Windows)
{
auto Path = `C:\#Users\Admin\Desktop\Script\Test1`;
if(!Path.isValidPath) { writeln("Path Not Valid");}
}
}

From,
Vino.B
Aug 31
next sibling parent Cym13 <cpicard openmailbox.org> writes:
On Thursday, 31 August 2017 at 21:59:22 UTC, vino wrote:
 Hi All,

   Can you help me what is wrong in the below program, as the 
 output is empty.

 import std.stdio, std.path;

 void main ()
 {
 version (Windows)
 {
 auto Path = `C:\#Users\Admin\Desktop\Script\Test1`;
 if(!Path.isValidPath) { writeln("Path Not Valid");}
 }
 }

 From,
 Vino.B
It doesn't print anything because the path is valid. Why do you expect otherwise? Note that isValidPath is only used for syntax check, it does not checks that the file or directory exists. If that is what you want use std.file.exists instead.
Aug 31
prev sibling parent reply Vino <vino.bheeman hotmail.com> writes:
On Thursday, 31 August 2017 at 21:59:22 UTC, vino wrote:
 Hi All,

   Can you help me what is wrong in the below program, as the 
 output is empty.

 import std.stdio, std.path;

 void main ()
 {
 version (Windows)
 {
 auto Path = `C:\#Users\Admin\Desktop\Script\Test1`;
 if(!Path.isValidPath) { writeln("Path Not Valid");}
 }
 }

 From,
 Vino.B
Hi, The path is not valid as it contains the character # after the drive name.
Aug 31
parent reply Jonathan M Davis via Digitalmars-d-learn writes:
On Thursday, August 31, 2017 23:23:17 Vino via Digitalmars-d-learn wrote:
 On Thursday, 31 August 2017 at 21:59:22 UTC, vino wrote:
 Hi All,

   Can you help me what is wrong in the below program, as the

 output is empty.

 import std.stdio, std.path;

 void main ()
 {
 version (Windows)
 {
 auto Path = `C:\#Users\Admin\Desktop\Script\Test1`;
 if(!Path.isValidPath) { writeln("Path Not Valid");}
 }
 }

 From,
 Vino.B
Hi, The path is not valid as it contains the character # after the drive name.
And why would that not be valid? isValidPath and isValidFilename are quite specific about what they think are valid path/file names, and having a # in a file name is perfectly legitimate. They do have some extra restrictions for Windows, since Windows is a lot pickier about its filenames than the rest of the world, but # is not one of the characters listed as invalid: https://dlang.org/phobos/std_path.html#isValidPath https://dlang.org/phobos/std_path.html#isValidFilename It would be invalid to have # as a drive name, but it's perfectly legal in a filename or directory name. - Jonathan M Davis
Aug 31
parent Vino.B <vino.bheeman hotmail.com> writes:
On Thursday, 31 August 2017 at 23:45:01 UTC, Jonathan M Davis 
wrote:
 On Thursday, August 31, 2017 23:23:17 Vino via 
 Digitalmars-d-learn wrote:
 [...]
And why would that not be valid? isValidPath and isValidFilename are quite specific about what they think are valid path/file names, and having a # in a file name is perfectly legitimate. They do have some extra restrictions for Windows, since Windows is a lot pickier about its filenames than the rest of the world, but # is not one of the characters listed as invalid: https://dlang.org/phobos/std_path.html#isValidPath https://dlang.org/phobos/std_path.html#isValidFilename It would be invalid to have # as a drive name, but it's perfectly legal in a filename or directory name. - Jonathan M Davis
Hi, Thank you very much for the explanation, was able to resolve the issue.
Sep 01