java - getTotalSpace() with UNC -
i'm trying use file.gettotalspace() , file.getfreespace() on nas share via unc, windows host.
due various links in nas, free/total space different based on specific directory requested.
for example, in dos box:
dir \\nas\level1 might return 12,234,567 bytes free, but:
dir \\nas\level1\level2\level3 returns 987,654,321 bytes free.
i try:
new file("\\\\nas\\level1\\level2\\level3").getfreespace(); but returns 12,234,567. appears getfreespace() , gettotalspace() retrieving reported space root of path (\\nas, in case), rather level requested.
if map unc path drive letter, e.g.:
net use s: \\nas\level1\level2\level3 then
new file("s:").getfreespace(); will return correct value. have iterate through bunch of unc paths, mapping them not feasible.
so how can free/total space of unc-based share specific directory level i'm requesting?
i assume expected space used/space free values windows explorer.
if so, should able these same values programmatically wmi.
suggestions:
write simple vbscript or powershell script, call script java.
here's simple powershell (.ps1) example, above link:
$disk = get-wmiobject win32_logicaldisk -computername remotecomputer -filter "deviceid='c:'" | foreach-object {$_.size,$_.freespace} here's example:
https://superuser.com/questions/911534/determine-the-size-of-a-network-folder
$startfolder = "\\pmintl.net\rbsdata\spa_bb01" $colitems = (get-childitem $startfolder | measure-object -property length -sum) "$startfolder -- " + "{0:n2}" -f ($colitems.sum / 1mb) + " mb" $colitems = (get-childitem $startfolder -recurse | where-object {$_.psiscontainer -eq $true} | sort-object) foreach ($i in $colitems) { $subfolderitems = (get-childitem $i.fullname | measure-object -property length -sum) $i.fullname + " -- " + "{0:n2}" -f ($subfolderitems.sum / 1mb) + " mb" }
Comments
Post a Comment