Italian Tagliare file

Ibbiu

Member
Licensed User
Longtime User
Visto che non riesco ad trasferire un file maggiore di 27mb su google drive, ( in effetti ho avuto una risposta),

https://www.b4x.com/android/forum/threads/upload-file-over-30mb-to-google-drive.116532/

ma ricevo sempre un errore (request is too long) , quindi ho deciso di spezzettarlo (file ZIP).

Sto cercando il modo di farlo, ho letto che un modo è quello di usare file.writebytes, ma non riesco a capire
come funziona.

Qualcuno ha qualche esempio ?

Grazie.

P.s se qualcuno è riuscito ad trasferire file di grandi dimensione su drive, ben venga.
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Considera che non avevo molta voglia di "lavorarci" e che non l'ho provato affatto:

B4X:
Sub Spezzetta(Dir As String, FileName As String, Spezzoni As Int)
    Dim FileSize As Long = File.Size(Dir, FileName)
    Dim Spezzoni As Int = 10
    Dim Spezzone As Int = FileSize / Spezzoni
    Dim Resto As Int = FileSize Mod Spezzone
    Log("File size: " & FileSize)
    Log("Spezzone " & Spezzone)
    Log("Resto: " & Resto)

    Dim rasInput As RandomAccessFile
    rasInput.Initialize(Dir, FileName, True)
    Dim FileNum As Int = 1

    For i = 0 To Spezzoni * Spezzone - 1 Step Spezzone
        Dim Buffer(Spezzone) As Byte
        rasInput.ReadBytes(Buffer, 0, Spezzone, i)
        Dim rasOutput As RandomAccessFile
        rasOutput.Initialize(Dir, FileNum & "_" & FileName, False)
        rasOutput.WriteBytes(Buffer, 0, Spezzone, 0)
        rasOutput.Flush
        rasOutput.Close
        FileNum = FileNum + 1
    Next

' Resto
    Dim Buffer(Resto) As Byte
    rasInput.ReadBytes(Buffer, 0, Resto, i)
    Dim rasOutput As RandomAccessFile
    rasOutput.Initialize(Dir, i & "_" & FileName, False)
    rasOutput.WriteBytes(Buffer, 0, Resto, 0)
    rasOutput.Flush
    rasOutput.Close
    rasInput.Close
End Sub


1 - Non è elegantissimo, visto come salva il "resto"
2 - si dovrebbe costruire il nome dei vari file in maniera diversa (NomeFileOrigine & "_" & FileNum & "." & EstensioneFileOrigine)
3 - ovviamente manca la parte di compressione (zip) dei singoli file; ma qualcosa dovrai pure fare tu, no? ?

Cmq, non è detto che io non ci "lavori" ancora, per farne una versione migliore (ed in inglese).

Ah, guarda che è per B4J (si fa prima a provare), per cui dovrai cambiare le directory.
 

Ibbiu

Member
Licensed User
Longtime User
Ti ringrazio......i file zippati sono già pronti e belli caldi per essere tagliati e trasferiti ?

Domani me lo studio per benino....

Ancora grazie.
 
Top