⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 磁盘管理.txt

📁 用vb实现在线考试系统
💻 TXT
字号:
磁盘管理功能:
在主界面加

Private Sub Timer3_Timer()
            ' 管理磁盘的使用
            HandleDiskUse
End Sub

' 处理磁盘使用
Private Sub HandleDiskUse()
    Dim i As Integer
    Dim fileName As String
    fileName = "S1N12F9999-12-31H15-05-34T16-05-00.mp4"
    Dim lDiskFreeSpace  As Long
    ldiskfreespace = gGetDiskSpaceLeft(strCapDriver + "\")  '录像文件路径
    Label3.Caption = "当前录像磁盘剩余空间:" & ldiskfreespace
    
    If ldiskfreespace < gDiskCanLeft Then                   '录像路径空间不足
        
        If MsgBox("录像磁盘空间不足,是手动删除还是系统自动删除录像文件", vbInformation + vbYesNo, "磁盘管理") = vbYes Then
            frmDisk.Show
        Else
            
            File.Path = strCapDriver + "\save"
            File.Refresh
            Do While i < File.ListCount
                If Format(strGetFileDate(File.List(i)), "yyyy-mm-dd") < Format(strGetFileDate(fileName), "yyyy-mm-dd") Then
                    fileName = File.List(i)
                End If
                
            i = i + 1
            Loop
                
            If fileName <> "S1N12F9999-12-31H15-05-34T16-05-00.mp4" Then
                Kill File.Path & "\" & fileName
            End If
      End If
    End If
End Sub

'获得文件名中的录像日期
'文件形式为S2F2000-10-13H10-20-16T10-07-25.mpg
'文件形式为S1N12F2004-05-11H15-05-34T16-05-00.mp4
Private Function strGetFileDate(ByVal sFileName As String) As String
Dim iBeginPos As Integer, iEndPos As Integer
    iBeginPos = InStr(UCase$(sFileName), "F")
    iEndPos = InStr(UCase$(sFileName), "H")
    If iEndPos > iBeginPos And iBeginPos <> 0 Then
        strGetFileDate = Mid(sFileName, iBeginPos + 1, iEndPos - iBeginPos - 1)
    Else
        strGetFileDate = ""
    End If
End Function


在模块里加以下内容:
定义一个全局变量:
' 认定磁盘空间不足的磁盘剩余空间量,对单个盘符而言
Public gDiskCanLeft As Integer


' ------------返回给定路径所在盘剩余空间--M----------6月28日加的-------------------------
Public Function gGetDiskSpaceLeft(ByVal sPath As String) As Long
        Dim sDrive As String
        Dim lFreeToCaller As Long, lTotalBytes As Long, lTotalFreeBytes As Long
        
            sDrive = sPath
            sDrive = left(Trim(sDrive), 1) & ":\"
            Ser_GetDiskSpace sDrive, lFreeToCaller, lTotalBytes, lTotalFreeBytes
            gGetDiskSpaceLeft = lTotalFreeBytes
End Function

Public Function ReadInt(Section As String, key As String) As Long
    Dim ReturnLng As Long
    ReadInt = 0
    ReturnLng = GetPrivateProfileInt(Section, key, 0, IniFileName)
    If ReturnLng = 0 Then
        ReturnLng = GetPrivateProfileInt(Section, key, 1, IniFileName)
        If ReturnLng = 1 Then
            ErrorMsg = "不能读取"
            Exit Function
        End If
    End If
    ReadInt = ReturnLng
End Function

' 读取系统配置文件 xtpz.ini
'
Public Sub ReadXTPZ()

    SpecifyIni App.Path + "\XTPZ.ini"
    
    iServerID = ReadInt("系统配置", "服务器号")
    strServerName = ReadString("系统配置", "服务器名", 20)
    strCapDriver = ReadString("系统配置", "录象盘符", 10)
    gDiskCanLeft = ReadInt("系统配置", "允许剩余的磁盘量(M)")
    iAutoOSd = ReadInt("系统配置", "自动设置字幕")
    
    Debug.Print iServerID & " " & strServerName & "   " & strCapDriver
End Sub


在vc中加一个函数,重新编译dll

先定义

/************************以下是郭锐写的内容************************************
/************************************************************
	Function	:Ser_GetDiskSpace
	Description	:得到当前的磁盘空间
	Input		:
	Return		:空间值
************************************************************/
int _stdcall Ser_GetDiskSpace(LPCTSTR sPath, PINT lpFreeBytesAvailableToCaller,  PINT lpTotalNumberOfBytes, PINT lpTotalNumberOfFreeBytes )
{

	ULARGE_INTEGER FreeBytesAvailableToCaller;
	ULARGE_INTEGER TotalNumberOfBytes;
	ULARGE_INTEGER TotalNumberOfFreeBytes;
	
	GetDiskFreeSpaceEx(sPath, &FreeBytesAvailableToCaller, &TotalNumberOfBytes,  &TotalNumberOfFreeBytes );
	*lpFreeBytesAvailableToCaller = FreeBytesAvailableToCaller.QuadPart  / 1048576L;
	*lpTotalNumberOfBytes = TotalNumberOfBytes.QuadPart / 1048576L;
	*lpTotalNumberOfFreeBytes =TotalNumberOfFreeBytes.QuadPart  / 1048576L; 
	
	return 0;
}

在系统设置窗口里加
Label:允许剩余的磁盘量(M)(应该小于10000M):
textbox:txtDiskCanLeft

在form_load下在readxtpz后加txtDiskCanLeft.Text = gDiskCanLeft

在保存按钮里加
    WriteString "系统配置", "允许剩余的磁盘量(M)", txtDiskCanLeft.Text
    ReadXTPZ

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -