@margret: As a workaround, whenever I needed to rename a large file, I just connect the device to a PC and rename it using Windows Explorer. What are the drawbacks of doing that?
Sub FileRename(Old As String,New As String) As Boolean
Dim R As Reflector
Dim NewObj As Object
NewObj=R.CreateObject2("java.io.File",Array As Object(New),Array As String("java.lang.String"))
R.Target=R.CreateObject2("java.io.File",Array As Object(Old),Array As String("java.lang.String"))
Return R.RunMethod4("renameTo",Array As Object(NewObj),Array As String("java.io.File"))
End Sub
RenameFile("/mnt/sdcard/Movies/Monsters_HQ.mp4", "/mnt/sdcard/Movies/M_HQ.mp4")
Sub RenameFile(OriginalFileName As String, NewFileName As String) As Boolean
Dim Result As Int
Dim StdOut, StdErr As StringBuilder
StdOut.Initialize
StdErr.Initialize
Dim Ph As Phone
Result = Ph.Shell("mv " & OriginalFileName & " " & NewFileName, Null, StdOut, StdErr)
If Result = 0 Then
Return True
Else
Return False
End If
End Sub
I'm sure someone on here could put together a simple library that we can all use to rename files.:sign0060:
For such a small, (presumably) infrequently used routine, I am not sure that a single function library would be much, if any more efficient than using reflection. You could isolate it in a code module or class if need be and build in file/path checking to suit your app.
I'd be interested to know if this is not the case.
Sub RenameFile(SrcDir As String, SrcFilename As String, DestDir As String, DestFilename As String) As Boolean
Dim R As Reflector, NewObj As Object, New As String , Old As String
If SrcFilename=Null OR DestFilename=Null OR SrcDir=Null OR DestDir=Null Then Return False
If File.Exists(SrcDir,SrcFilename) AND Not(File.Exists(DestDir,DestFilename)) Then
New=File.Combine(DestDir,DestFilename)
Old=File.Combine(SrcDir,SrcFilename)
If Not(New = Old) Then
NewObj=R.CreateObject2("java.io.File",Array As Object(New),Array As String("java.lang.String"))
R.Target=R.CreateObject2("java.io.File",Array As Object(Old),Array As String("java.lang.String"))
Return R.RunMethod4("renameTo",Array As Object(NewObj),Array As String("java.io.File"))
End If
End If
Return False
End Sub