mit dem nachfolgenden Quellcode kann ich beliebige lokale Platten und USB-Sticks durchsuchen (scannen).
Wenn ich aber das Serverlaufwerk anspreche, verabschiedet sich Openoffice nach kurzer Zeit und Microsoft will einen Fehlerbericht absetzen.
Liegt das an dem Code?
Code: Alles auswählen
Private oDocument, oTxtRange As object
Private Liste(100000) as string
Private myString as String
Private Laufwerk as String
Private DocFileDateTime as object
Private oComputer as String
Sub Katalog
' REM Rahmenbedingungen
GlobalScope.BasicLibraries.LoadLibrary("Tools")
Dim oDoc , oForm , CtrlTextBox as Object
Dim VerzeichnisAlt,VerzeichnisNeu,VerzeichnisTemp,MyText as string
'Dim Laufwerk as String
oDoc = thisComponent
oform=odoc.drawpage.forms.getbyindex(0)
CtrlTextBox = oForm.getByName("Textfeld 1")
Laufwerk = CtrlTextBox.text
CtrlTextBox = oForm.getByName("Textfeld 2")
myString = CtrlTextBox.text
oComputer = environ ("COMPUTERNAME")
' with thiscomponent.getDocumentInfo.ModifyDate
' msgbox .Year
' msgbox .Month
' msgbox .Day
' msgbox .Hours
' msgbox .Minutes
' end with
'Jetzt geht es zu auslesen
'Fortschrittsbalken
erg=getDirs(liste(),0,Laufwerk)
VerzeichnisAlt = ""
REM Leeres Dokument erzeugen
leerDoku
oViewC = oDocument.getCurrentController().getViewCursor()
oDocument.getText().insertString(oViewC, chr(13) & oComputer & chr(13), False)
for Zaehler = 0 to (erg - 1)
VerzeichnisTemp = ConvertFromURL(Liste(Zaehler))
VerzeichnisNeu = DirectoryNameoutofPath(VerzeichnisTemp,"\")
If VerzeichnisNeu = VerzeichnisAlt then
oDocument.getText().insertString(oViewC, chr(13) & (Liste(Zaehler))& chr(13), False)
else
oViewC = oDocument.getCurrentController().getViewCursor()
oDocument.getText().insertString(oViewC, chr(13) & (Liste(Zaehler))& chr(13), False)
end if
VerzeichnisAlt = VerzeichnisNeu
next Zaehler
msgbox "fertig"
end sub
Sub leerDoku
Dim mArgs()
oDocument = StarDesktop.loadComponentFromURL ("private:factory/swriter","_blank",0,mArgs())
oDocument.title = "Katalog"
'oDocumentPageStyles=ThisComponent.getStyleFamilies().getByName("PageStyles")
'oDocumentPageStyle=oDocumentPageStyles.getByName("Katalog")
'oDocumentPageStyle.setPropertyValue "IsLandscape",True
REM Neues Dokument geöffnet
End Sub
sub Fortschrittsbalken
Dialoglibraries.Loadlibrary("Standard")
MyDlg= CreateUnoDialog(Dialoglibraries.Standard.Dialog1)
MyDlg.setvisible (True)
myctrl = myDlg.getControl("ProgressBar1")
myctrl.model.backgroundcolor = RGB (255, 159, 70)
myctrl.ForegroundColor = RGB (255, 0, 0)
myctrl.model.ProgressValueMax=100
for i= 0 to 100
myDlg.getControl("Label1").Text = "In Arbeit... " & i & " %"
if i > 75 then
myctrl.ForegroundColor = RGB (2, 159, 70)
myDlg.getControl("Label1").Text = "Bin gleich fertig! " & i & " %"
MyCtrl1=MyDlg.getControl("Label1")
myctrl1.model.textcolor = RGB (2, 159, 70)
end if
myctrl. value = i
wait 40
next i
'erg=getDirs(liste(),0,Laufwerk)
mydlg.setvisible (false)
end sub
function getdirs( liste(),z, folder) as integer
sFolderUrl = ConvertToUrl( Folder )
oSimpleFileAccess = createUnoService( "com.sun.star.ucb.SimpleFileAccess" )
on error resume next
aFolders = oSimpleFileAccess.getFolderContents( sFolderUrl,true )
For i = LBound( aFolders ) To UBound( aFolders )
sFile = aFolders( i )
'Endung = lcase(right(sFile,4))
Endung = lcase(sFile)
If oSimpleFileAccess.isFolder( sFile ) Then
getdirs( liste(),z, sFile)
Else
'if Ucase(Endung) = ltrim(rtrim(Ucase(myString))) then
'if Ucase(Endung) = ltrim(rtrim(Ucase(myString))) or Instr(sFile,ltrim(rtrim(Ucase(myString))))<>0 then
if Instr(Ucase(Endung),ltrim(rtrim(Ucase(myString))))<>0 then
DocFileDateTime = Split(FileDateTime(sFile)," ")
'msgbox DocFileDateTime(0) Jahreszahl
'msgbox DocFileDateTime(1) Uhrzeit
liste(z) = sFile & "/" & DocFileDateTime(0) & "/" & DocFileDateTime(1)
z = z + 1
end if
end if
next i
getdirs = z
end function
Werner