40 lines
675 B
ObjectPascal
40 lines
675 B
ObjectPascal
program LsCommand;
|
|
|
|
{$APPTYPE CONSOLE}
|
|
|
|
|
|
|
|
uses
|
|
System.SysUtils,
|
|
System.IoUtils;
|
|
|
|
procedure Ls(folder: string = '.');
|
|
var
|
|
offset: Integer;
|
|
fileName: string;
|
|
|
|
// simulate unix results in windows
|
|
|
|
function ToUnix(path: string): string;
|
|
begin
|
|
Result := path.Replace('/', PathDelim, [rfReplaceAll])
|
|
end;
|
|
|
|
begin
|
|
folder := IncludeTrailingPathDelimiter(ToUnix(folder));
|
|
offset := length(folder);
|
|
|
|
for fileName in TDirectory.GetFileSystemEntries(folder, '*') do
|
|
writeln(^I, ToUnix(fileName).Substring(offset));
|
|
end;
|
|
|
|
begin
|
|
writeln('cd foo'#10'ls');
|
|
ls('foo');
|
|
|
|
writeln(#10'cd bar'#10'ls');
|
|
ls('foo/bar');
|
|
|
|
{$IFNDEF LINUX} readln; {$ENDIF}
|
|
end.
|