[Plugin] Directory 2.0
#1

This is a continuation and refinement rather my previous plugin with that name klik

Functions:

DIR: DirOpen(const dirname[])
opens the directory to read it (You can open up to 32 folders at the same time)
  • const dirname[] - name of a directory
Return false if directory doesn't exist


DirClose(DIR:dir)
closes open directory
  • DIR:dir - id of a directory returned by DirOpen
Return true if directory has closed without any problems


DirRead(DIR:dir, name[])
Gets the name and type of element from directory
  • DIR:dir - id of a directory returned by DirOpen
  • name[] - return name of element
Return the element type*


DirRewind(DIR:dir)
Function moves a place to start reading a folder
  • DIR:dir - id of a directory returned by DirOpen
Returns true if the id of a directory is correct


DirCreate(const name[], mode = 420)
Creates a directory
  • const name[] - name of a directory
  • mode - chmod, unused on Windows
Returns true if the directory is correctly created


Rename(const oldname[], const newname[])
Renames a file / directory or move it to another location
  • const oldname[] - old name of a file/directory or the old localization
  • const newname[] - new name of a file/directory or the new localization
Returns true if the operation is performed correctly


CheckPath(const patch[])
Checks the type of element
  • const patch[] - name of file/directory
Returns the element type (directory, file)*


DirRemove(const name[], bool:empty = false)
Removes a directory and all subfolders and files inside
  • const name[] - name of a directory
  • bool:empty = false - if you know the directory is empty set this to true
Return 'true' if directory has been successfully removed


Chmod(const patch[], mode)
Sets the chmod of a directory/file
  • const patch[] - name of element
  • mode - mode, e.g. S_IREAD | S_IWRITE | S_IRGRP | S_IROTH or IntToOctal(644)
Windows
Linux
(names are the same in my dir.inc)

*Types of element (definitions):
type_unknown - not found or unknown type
type_dir - directory
type_file - file
type_other - other type

if you want to use chmod on Windows and you script gonna work only on Windows paste
pawn Код:
#define WIN32
//or
#define WIN
above
pawn Код:
#include <dir>
DOWNLOAD:
Windows .dll
Linus .so (on Ubuntu 11.04)
Includ .inc

and

soucre code

Mirror:
Direct download (all files)

Example:
pawn Код:
new str[100],
    type,
    DIR:xxx = DirOpen("."); // scriptfiles

if(!xxx)
    return print("directory not found");

type = DirRead(xxx, str);
while(str[0])
{
    printf("\'%s\' type: %d", str, type);
    type = DirRead(xxx, str);
}
DirClose(xxx);
Reply
#2

Looks good
I'll try it!

EDIT:
Quote:
Originally Posted by Terminator3
Посмотреть сообщение
DirCreate(const name[])
Rename(const oldname[], const newname[])
From older plugin, that's a functions from C, mkdir and rename, (return == 0)
Little mistake?
Reply
#3

Good job, its useful
Reply
#4

Looks very nice men, i will try this
Reply
#5

Looks nice.
Reply
#6

It could be useful if this detect how many files are in the directory, what format is that file in the directory and such.
Reply
#7

hohoho! this plugin surely takes away some pain of scripting with .catalogue files, its really handy, thank you!
one question: do you intent to let the DirRead() output its content sorted? i could need that for easier browsing through numbered files :O)
Reply
#8

Very nice!
Reply
#9

Quote:
Originally Posted by Babul
Посмотреть сообщение
hohoho! this plugin surely takes away some pain of scripting with .catalogue files, its really handy, thank you!
one question: do you intent to let the DirRead() output its content sorted? i could need that for easier browsing through numbered files :O)
DirRead (readdir from dirent.h) has already sorts files by name, just is some small difference on linux

EDIT:
small update
Reply
#10

That's nice, might be useful for some things.
Reply
#11

Any mirror? I can't download from solidfiles.com
Reply
#12

Ok, all files:
http://adf.ly/5SSH6
Reply
#13

Bug report:
{
Chmod in DirCreate didnґt work. Please fix it in next release

if I use:
pawn Код:
DirCreate("Logs/Test",502);
Chmod is 744

But it is fixable by:
pawn Код:
Chmod("Logs/Test",502);
Chmod is OK = 766
}
Reply
#14

Quote:
Originally Posted by papedo
Посмотреть сообщение
Bug report:
{
Chmod in DirCreate didnґt work. Please fix it in next release

if I use:
pawn Код:
DirCreate("Logs/Test",502);
Chmod is 744

But it is fixable by:
pawn Код:
Chmod("Logs/Test",502);
Chmod is OK = 766
}
Oh sorry, for that late response and this bug, i don't know how i missed it, it easy to fix, in source should be

Код:
return (!mkdir(name, params[2]));
instead of
Код:
return (!mkdir(name, S_IREAD | S_IWRITE | S_IRGRP | S_IROTH)); // permission 0644
i don't have linux right now so i can't fix it
Reply
#15

The links are not working
Reply
#16

Quote:
Originally Posted by Fancy
Посмотреть сообщение
The links are not working
All links on in http://pawno.pl/index.php?/topic/723...derami-w-samp/
Reply
#17

This plugin dead? Any alternative plugin for Centos7 ?
Reply
#18

Quote:
Originally Posted by maxisaibot
Посмотреть сообщение
This plugin dead? Any alternative plugin for Centos7 ?
CentOS is the most tricky distro to use, simply use Ubuntu... Its a lot easier, and you won't spend weeks trying to find support.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)