?? 磁盤管理.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 + -