On Wednesday, 6 December 2017 at 15:04:55 UTC, Andrea Fontana
wrote:
On Wednesday, 6 December 2017 at 14:49:48 UTC, Vino wrote:
Hi Andrea,
Thank you very much, as your code is pretty good for our
scenario, just one request, the above is a part of our main
code where we have many such sub code and all of our sub code
use the container array(std.container.array) rather than
standard array(std.array), so can you please guide me on how
to implement the same code using the container array.
From,
Vino.B.
Just use Array! constructor.
auto mSize () {
string FFs = "/home/andrea/Scaricati";
return
Array!(Tuple!(string,string))(
dirEntries(FFs, SpanMode.shallow)
.filter!(a => a.isDir)
.map!(a => tuple(a.name,
a.dirEntries(SpanMode.depth).filter!(a=>a.isFile).map!(a =>
a.size).sum))
.filter!(a => a[1] > 1024*1024*30)
.map!(a => tuple(a[0], a[1].to!string))
);
}
Hi Andrea,
I test your code, initially it error ed out stating "patch does
not exist", the reason for this error is that the length of the
path is more than 256 , so added the UNC path to the code as
below.
auto mSize () {
string FFs = "C:\Temp\BACKUP";
ulong SGb = 1024 * 1024;
int SizeDir = 10;
return Array!(Tuple!(string,real))(
dirEntries(join(["\\\\?\\", FFs]), SpanMode.shallow).filter!(a
=> a.isDir)
.map!(a => tuple(a.name,
a.dirEntries(SpanMode.depth).filter!(a=>a.isFile)
.map!(a => a.size).sum)).filter!(a => a[1] > (SGb * SizeDir))
.map!(a => tuple(a[0], ((a[1].to!real)/ SGb ))));
}
The output of the code is as below
\\?\C:\Temp\BACKUP\dir1 34.90
\\?\C:\Temp\BACKUP\dir2 36.18
So how do we print the output without UNC path
C:\Temp\BACKUP\dir1 34.90
C:\Temp\BACKUP\dir2 36.18
From,
Vino.B