Fix for issue #94

This commit is contained in:
MikeMaximus
2017-07-15 10:46:37 -06:00
parent 9c8cbad7d5
commit d3d6482bfd
+35 -2
View File
@@ -322,8 +322,32 @@ Public Class mgrCommon
Return lSize Return lSize
End Function End Function
'Get available disk space on a drive 'Get available disk space on a drive (Unix)
Public Shared Function GetAvailableDiskSpace(ByVal sPath As String) As Long Private Shared Function GetAvailableDiskSpaceLinux(ByVal sPath As String) As Long
Dim prsdf As Process
Dim sOutput As String
Dim sAvailableSpace As String
Try
prsdf = New Process
prsdf.StartInfo.FileName = "/bin/df"
prsdf.StartInfo.Arguments = sPath
prsdf.StartInfo.UseShellExecute = False
prsdf.StartInfo.RedirectStandardOutput = True
prsdf.StartInfo.CreateNoWindow = True
prsdf.Start()
sOutput = prsdf.StandardOutput.ReadToEnd
'Parse df output to grab "Available" value
sAvailableSpace = sOutput.Split(vbLf)(1).Split(New Char() {" "}, StringSplitOptions.RemoveEmptyEntries)(3)
'Return value in bytes
Return CLng(sAvailableSpace) * 1024
Catch
Return 0
End Try
Return 0
End Function
'Get available disk space on a drive (Windows)
Private Shared Function GetAvailableDiskSpaceWindows(ByVal sPath As String) As Long
Dim oDrive As DriveInfo Dim oDrive As DriveInfo
Dim lAvailableSpace As Long = 0 Dim lAvailableSpace As Long = 0
Try Try
@@ -335,6 +359,15 @@ Public Class mgrCommon
Return lAvailableSpace Return lAvailableSpace
End Function End Function
'Get available disk space on a drive
Public Shared Function GetAvailableDiskSpace(ByVal sPath As String) As Long
If IsUnix() Then
Return GetAvailableDiskSpaceLinux(sPath)
Else
Return GetAvailableDiskSpaceWindows(sPath)
End If
End Function
'Delete file based on OS type 'Delete file based on OS type
Public Shared Sub DeleteFile(ByVal sPath As String, Optional ByVal bRecycle As Boolean = True) Public Shared Sub DeleteFile(ByVal sPath As String, Optional ByVal bRecycle As Boolean = True)
If File.Exists(sPath) Then If File.Exists(sPath) Then