Sto facendo un app che carica un file di testo dalla memoria del telefono che contiene una lista di numeri
dopo di che, periodicamente leggoun numero dalla lista e poi quel numero che in teoria è sempre quello con index =0, e lo vorrei eliminare dal file da cui lo avevo letto.
alla fine il file dovrebbe essere vuoto.
Ho messo i permessi
e tutto funziona, infatti all' inizio mi chiede di dare il permesso
poi elimino il numero che ho appena usato
e cerco di riscrivere la nuova lista senza il numero camcellato
questa riga mi genera un errorem credo di permessi
Dim out As OutputStream = File.OpenOutput(Directory, NomeFile ,False)
Directory e Nome File li ottengo dalla sub Sub cc_Result (Success As Boolean, Dir As String, FileName As String) vedi sopra.
il mio file si chiama numbers.txt edanche se sostituisco NomeFile con "numbers.txt" ho lo stesso errore
questo è l' errore:
Dove sta il problema ?
carico file:
Sub cc_Result (Success As Boolean, Dir As String, FileName As String)
Directory=""
NomeFile=""
If Success = True Then
Directory=Dir
NomeFile=FileName
Log("Directory= " & Dir)
Log("NomeFile= " & FileName)
' Leggiamo i numeridal file
currentNumberIndex = 0
numbersList.Initialize
' Dim in As InputStream
'in = File.OpenInput(File.DirInternal, "numbers.txt")
in = File.OpenInput(Directory, NomeFile)
Dim reader As TextReader
reader.Initialize(in)
Do While reader.Ready
Dim number As String = reader.ReadLine.Trim
If number <> "" And number.EndsWith("#") = False Then
numbersList.Add(number)
End If
Loop
reader.Close
in.Close
currentNumberIndex = 0
smsSent = False
dopo di che, periodicamente leggoun numero dalla lista e poi quel numero che in teoria è sempre quello con index =0, e lo vorrei eliminare dal file da cui lo avevo letto.
alla fine il file dovrebbe essere vuoto.
Ho messo i permessi
permessi manifest:
AddManifestText(
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="29"/>
<supports-screens android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
CreateResourceFromFile(Macro, Themes.LightTheme)
'End of default text.
AddManifestText(
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />)
e tutto funziona, infatti all' inizio mi chiede di dare il permesso
poi elimino il numero che ho appena usato
B4X:
numbersList.RemoveAt(index)
'
e cerco di riscrivere la nuova lista senza il numero camcellato
B4X:
Dim out As OutputStream = File.OpenOutput(Directory, NomeFile ,False)
Dim writer As TextWriter
writer.Initialize(out)
For Each item As String In numbersList
writer.WriteLine(item)
Next
writer.Close
out.Close
questa riga mi genera un errorem credo di permessi
Dim out As OutputStream = File.OpenOutput(Directory, NomeFile ,False)
Directory e Nome File li ottengo dalla sub Sub cc_Result (Success As Boolean, Dir As String, FileName As String) vedi sopra.
il mio file si chiama numbers.txt edanche se sostituisco NomeFile con "numbers.txt" ho lo stesso errore
questo è l' errore:
B4X:
java.io.FileNotFoundException: ContentDir/content:/com.android.providers.media.documents/document/document%3A1000009746: open failed: ENOENT (No such file or directory)
Dove sta il problema ?