Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
40
Task/Empty-directory/Pascal/empty-directory.pas
Normal file
40
Task/Empty-directory/Pascal/empty-directory.pas
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
program emptyDirectory(input, output);
|
||||
|
||||
type
|
||||
path = string(1024);
|
||||
|
||||
{
|
||||
\brief determines whether a (hierarchial FS) directory is empty
|
||||
|
||||
\param accessVia a possible route to access a directory
|
||||
\return whether \param accessVia is an empty directory
|
||||
}
|
||||
function isEmptyDirectory(protected accessVia: path): Boolean;
|
||||
var
|
||||
{ NB: `file` data types without a domain type are non-standard }
|
||||
directory: bindable file;
|
||||
FD: bindingType;
|
||||
begin
|
||||
{ initialize variables }
|
||||
unbind(directory);
|
||||
FD := binding(directory);
|
||||
|
||||
FD.name := accessVia;
|
||||
{ binding to directories is usually not possible }
|
||||
FD.force := true;
|
||||
|
||||
{ the actual test }
|
||||
bind(directory, FD);
|
||||
FD := binding(directory);
|
||||
unbind(directory);
|
||||
|
||||
isEmptyDirectory := FD.bound and FD.directory and (FD.links <= 2)
|
||||
end;
|
||||
|
||||
{ === MAIN ============================================================= }
|
||||
var
|
||||
s: path;
|
||||
begin
|
||||
readLn(s);
|
||||
writeLn(isEmptyDirectory(s))
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue