On 12/06/2012 07:52 AM, Suliman wrote:
I am trying to create simple app that would read user input and open
file with such name, but every time when I run it's crash with error

"std.file.FileException@std\file.d(294): \1.txt"

import std.stdio;
import std.string;
import std.file;

void main()
{
string getfilename()
{
auto name = readln();
writeln(name);
if (exists(name))
{
writeln("exist");
}
else
writeln("not exist");

return name;
}

void readfile(string name)
{
auto filearray = read(name);
writeln(name);
writeln(filearray);
}
readfile(getfilename());


}

The exception is thrown here:

    version(Windows)
    {
        alias TypeTuple!(GENERIC_READ,
FILE_SHARE_READ, (SECURITY_ATTRIBUTES*).init, OPEN_EXISTING,
                FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN,
                HANDLE.init)
            defaults;
        auto h = CreateFileW(std.utf.toUTF16z(name), defaults);

        cenforce(h != INVALID_HANDLE_VALUE, name);    // <-- HERE

It seems to be related to a Unicode encoding issue, possibly the encoding that the console is using. (I am assuming that getfilename() reads from the console.)

It could be about file access rights as well.

Ali

Reply via email to