如何确定D中的文件是否可读?我已经多次搜索谷歌和D的文档和东西 - 我也多次搜索过SO - 但我在测试给定文件是否可读时无法找到任何 。我知道怎么做,理论上,在C中使用__freadable - 我甚至试图在D中对__freadable进行外部调用,但是我得到了以下链接错误:
ldc2 -O2 -dw -g -wi -I/usr/include/stdio_ext.h -c ket.d ket.o
ldc2 -O2 -dw -g -wi -I/usr/include/stdio_ext.h -ofket ket.o
ket.o: In function `_Dmain':
/home/hav3lock/sy.l/repos/pub_rel/ket/ket.d:47: undefined reference to `_D3ket4mainFAAyaZv11__freadableUPOS4core4stdc5stdio6_iobufZi'
collect2: error: ld returned 1 exit status
Error: /usr/bin/gcc failed with status: 1
make: *** [ket] Error 1
我在D中读到了更多关于调用C东西的内容,显然我需要重写stdio_ext.h C头 - 其中__freadable存在 - 作为D头或类似的东西,并且工作量超出了我正在尝试做的范围。
我只是想弄清楚一个给定的文件是否可读,以便我可以确定该文件是否存在以及它是否也可以一次性读取。如果我用bash写这个吸盘,我只需要使用
[[ -r FILE ]]
来测试FILE是否存在并且授予了对它的读取权限,但是我无法找到如何在D中执行等效的任何想法?
尝试使用getAttributes,但D抱怨:
no property 'getAttributes' for type 'File'
以下是我使用 getAttributes
的方式 auto file_a = File(proc_auto[hdex], "r");
writeln(file_a.getAttributes);
答案 0 :(得分:3)
为什么在http://www.dlang.org上有优秀的Phobos参考时使用Google搜索?
您寻求的是std.file.getAttributes()功能。