我正在寻找一种在Vala中读取多个文件的方法。 在整个互联网上运行的一个例子是关于阅读文件夹中的所有文件并按类型对它们进行排序,但是我无法通过它进行排序,但仍在尝试。我正在谈论:http://www.valadoc.org/#!api=glib-2.0/GLib.Dir 和https://wiki.gnome.org/Projects/Vala/GIOSamples,主要是。
在我的文件夹中,我有一堆文件加上我的vala程序。我需要读取该文件夹中具有特定文件扩展名的所有文件。例如阅读所有.txt文件,直到该文件夹中没有更多的.txt文件。
非常感谢!
答案 0 :(得分:1)
我会这样做......
void main( )
{
string dir = ".";
Dir d;
try
{
d = Dir.open( dir );
}
catch ( FileError e )
{
stderr.printf( "Could not open %s! %s", dir, e.message );
return;
}
unowned string? name;
while ( ( name = d.read_name( ) ) != null )
{
string path = Path.build_filename( dir, name );
if ( name.down( ).has_suffix( ".txt" ) && FileUtils.test( path, FileTest.IS_REGULAR ) )
{
FileStream? f = FileStream.open( path, "r" );
if ( f == null )
{
stderr.printf( "Error opening %s for reading! %d: %s\n", path, GLib.errno, GLib.strerror( GLib.errno ) );
return;
}
/* Read contents from f... */
}
}
}