Esempio n. 1
0
static int moddir_cd( INSTANCE * my, int * params )
{
    char * d = dir_current() ;
    int r = string_new( d ) ;
    string_use( r ) ;
    if ( d ) free( d ) ;
    return r ;
}
Esempio n. 2
0
isc_result_t
isc_file_absolutepath(const char *filename, char *path, size_t pathlen) {
	isc_result_t result;
	result = dir_current(path, pathlen);
	if (result != ISC_R_SUCCESS)
		return (result);
	if (strlen(path) + strlen(filename) + 1 > pathlen)
		return (ISC_R_NOSPACE);
	strcat(path, filename);
	return (ISC_R_SUCCESS);
}
Esempio n. 3
0
bool dir_list(const char *dir, list<String> &lst, bool full_path, bool show_hidden, bool show_dots) {
	E_ASSERT(dir != NULL);

	DIR *dirp = opendir(dir);
	E_RETURN_VAL_IF_FAIL(dirp != NULL, false);

	/* make sure the list is empty */
	lst.clear();

	String dirstr, tmp;
	if(full_path) {
		/* resolve full name if given folder in form: './file' */
		dirstr = (dir[0] == '.' && dir[1] == '\0') ? dir_current() : dir;

		if(!str_ends(dirstr.c_str(), E_DIR_SEPARATOR_STR))
			dirstr += E_DIR_SEPARATOR_STR;
	}

	for(dirent *dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) {
		if(!show_hidden && dp->d_name[0] == '.' && !DOT_OR_DOTDOT(dp->d_name))
			continue;

		if(!show_dots && DOT_OR_DOTDOT(dp->d_name))
			continue;

		if(full_path) {
			tmp = dirstr;
			tmp += dp->d_name;
			lst.push_back(tmp);
		} else {
			lst.push_back(dp->d_name);
		}
	}

	lst.sort();
	closedir(dirp);
	return true;
}
Esempio n. 4
0
	UT_VERIFY( dir_readable("/root") == false );
	UT_VERIFY( dir_writeable("/root") == false );

	UT_VERIFY( dir_exists("/we/dont/have/this/directory") == false );
	UT_VERIFY( dir_readable("/we/dont/have/this/directory") == false );
	UT_VERIFY( dir_writeable("/we/dont/have/this/directory") == false );

	UT_VERIFY( dir_exists("Jamfile") == false );
	UT_VERIFY( dir_exists("../Jamfile") == false );
	UT_VERIFY( dir_exists("../../src/File.cpp") == false );
	UT_VERIFY( dir_writeable("../../src/File.cpp") == false );
	UT_VERIFY( dir_exists("../edelib") );
#endif

	UT_VERIFY( dir_home() != "" );
	UT_VERIFY( dir_current() != "" );

	list<String> dlist;
	UT_VERIFY( dir_list("/this/directory/should/not/exist", dlist) == false );
	UT_VERIFY( dir_list(".", dlist) == true );
	UT_VERIFY( dlist.size() != 0 );
}

UT_FUNC(DirectoryOperations, "Test Directory operations")
{
	UT_VERIFY( dir_create("FooDir") == true );
#if 0
	UT_VERIFY( dir_exists("FooDir") == true );
#endif

	UT_VERIFY( dir_rename("FooDir", "BazDir") == true );