lotus-domino - 无法从 Domino tmp 文件夹中删除文件 - 路径/文件访问错误
问题描述
我有一个代理可以列出和删除 Domino 临时文件夹中的文件:
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Print "-- running from db " + db.Notesurl
Set filelist = New HandleFilesInDirectory("D:\IBM\Domino\Temp\notes53F5BD\xspupload\")
'Set filelist = New HandleFilesInDirectory("D:\IBM\Domino\Temp\notes53F5BD\")
Call filelist.GetFilesOnDisk()
'%REM
Print "Directory List Starts"
ForAll x In filelist.m_SumDirs
Print ListTag(x)
End ForAll
'%END REM
'%REM
Print "File List Starts"
ForAll y In filelist.m_SumFiles
Print ListTag(y)
Kill y
End ForAll
'%END REM
Call filelist.EraseListFromMemory()
End Sub
脚本库:
%REM
Class HandleFilesInDirectory
Description: Comments for Class
%END REM
Public Class HandleFilesInDirectory
Private m_session As NotesSession
Private m_DirectoryStart As String
Public m_SumDirs List As String
Public m_SumFiles List As String
Public Sub New (DirectoryStart As String)
Set me.m_session = New NotesSession
me.m_DirectoryStart = DirectoryStart
End Sub
%REM
Sub GetFilesOnDisk
Description: Comments for Sub
%END REM
Public Sub GetFilesOnDisk()
Call me.ScanDirs(me.m_DirectoryStart)
End Sub
%REM
Sub ScanDirs
Description: Comments for Sub
%END REM
Private Sub ScanDirs(path As String)
Dim sess As New NotesSession
Dim DirList As Variant
Dim filename As String
Dim filepath As String
Dim sep As String
If path <> "" Then
If InStr(sess.Platform, "Windows") > 0 Then
sep = "\"
Else
sep = "/"
End If
ReDim DirList(0)
If InStr(path, sep) > 0 Then
filepath = StrLeftBack(path, sep)
End If
filename = Dir(path, 16)
While filename <> ""
If filename <> "." And filename <> ".." Then
If (GetFileAttr(filepath & sep & filename) And 16) >0 Then
DirList = ArrayAppend(DirList,filepath & sep & filename & sep)
m_SumDirs(filepath & sep & filename & sep) = "Yes"
Else
' PERFORM DESIRED CHECK/OPERATION
' ON filepath & sep & filename
' OR filename (as desired)
m_SumFiles(filepath & sep & filename) = "Yes"
End If
End If
filename = Dir
Wend
DirList = FullTrim(DirList)
ForAll dirpath In DirList
ScanDirs(dirpath)
End ForAll
End If
End Sub
%REM
Sub EraseListFromMemory
Description: Comments for Sub
%END REM
Public Sub EraseListFromMemory()
Erase m_SumDirs
Erase m_SumFiles
End Sub
End Class
它返回以下输出:
[02D4:0002-0C68] 2019-09-24 16:19:19 AMgr:代理('KKom\patrick\app.nsf' 中的'GetMyFiles')打印:D:\IBM\Domino\Temp\notes53F5BD\xspupload\ placeholder.txt [02D4:0002-0C68] 2019-09-24 16:19:19 AMgr:代理('KKom\patrick\app.nsf' 中的'GetMyFiles')错误消息:路径/文件访问错误
代理签署了正确的 ID,运行时安全级别设置为 3
有人可以解释我做错了什么吗?
解决方案
推荐阅读
- java - 我想通过蓝牙将数据从 Android 发送到 Arduino
- javascript - 通过添加 cookie 进行 CSS 样式表切换
- r - 如何解决 UseMethod() 中的此错误?
- qt - Qt/QML - 如何自定义 Popup 调光效果?
- java - org.jasypt.exceptions.EncryptionOperationNotPossibleException 抛出 HTTP 状态 500
- kotlin - 无法构建/运行 Jetpack Compose Multiplatform 的桌面版本,即使在最新版本的 IntelliJ 上的全新项目上也是如此
- java - 如何从代码的另一部分中的公共 ClassName 访问数据?
- javascript - WkWebview javascript动画在屏幕锁定时冻结
- pine-script - 我可以在同一个脚本中使用 overlay = true 和 overlay = false 吗?
- c++ - 不退出 shell 会导致当前工作目录打印两次