Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Convert.ToBase64CharArray (Byte[], Int32, Int32, Char[], Int32)

 

Data di pubblicazione: ottobre 2016

Converte un subset di una matrice di interi senza segno a 8 bit in un subset equivalente di una matrice di caratteri Unicode codificati con cifre base 64. I parametri specificano i sottoinsiemi come offset nelle matrici di input e output e il numero di elementi nella matrice di input da convertire.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

public static int ToBase64CharArray(
	byte[] inArray,
	int offsetIn,
	int length,
	char[] outArray,
	int offsetOut
)

Parametri

inArray
Type: System.Byte[]

Matrice di input di interi senza segno a 8 bit.

offsetIn
Type: System.Int32

Posizione all'interno di inArray.

length
Type: System.Int32

Numero di elementi di inArray da convertire.

outArray
Type: System.Char[]

Matrice di output di caratteri Unicode.

offsetOut
Type: System.Int32

Posizione all'interno di outArray.

Valore restituito

Type: System.Int32

Un intero con segno a 32 bit contenente il numero di byte in outArray.

Exception Condition
ArgumentNullException

inArray o outArray è null.

ArgumentOutOfRangeException

offsetIn, offsetOut o length è negativo.

-oppure-

La somma di offsetIn e length è maggiore della lunghezza di inArray.

-oppure-

La somma di offsetOut e del numero di elementi da restituire è maggiore della lunghezza di outArray.

Il subset di length elementi di inArray a partire dalla posizione offsetIn, viene considerato come un valore numerico e convertito in un sottoinsieme di elementi in outArray a partire dalla posizione offsetOut. Il valore restituito indica il numero di elementi convertiti in outArray. Il subset di outArray è costituito da cifre base 64.

Le cifre base 64 in ordine crescente da zero sono i caratteri maiuscoli "A" a "Z", i caratteri minuscoli "a" a "z", i numeri da "0" e "9" e i simboli "+" e "/". Il carattere non significativo "=", viene utilizzato per la spaziatura interna finale.

Il offset e length i parametri sono numeri con segno a 32 bit. Il offsetIn e offsetOut i parametri sono posizioni di matrici in base zero.

System_CAPS_importantImportante

Il ToBase64CharArraymetodo è progettato per elaborare una matrice a singolo byte che contiene tutti i dati da codificare. Per creare una matrice di caratteri base 64 da un flusso di byte, utilizzare la System.Security.Cryptography.ToBase64Transform classe.

Nell'esempio seguente viene illustrato l'utilizzo di ToBase64CharArray metodo UUencode (codifica base 64) un flusso binario, quindi salvare la codifica in un file.

public void EncodeWithCharArray() {
   System.IO.FileStream inFile;    
   byte[]             binaryData;

   try {
      inFile = new System.IO.FileStream(inputFileName,
                                 System.IO.FileMode.Open,
                                System.IO.FileAccess.Read);
      binaryData = new Byte[inFile.Length];
      long bytesRead = inFile.Read(binaryData, 0,
                           (int) inFile.Length);
      inFile.Close();
   }
   catch (System.Exception exp) {
      // Error creating stream or reading from it.
      System.Console.WriteLine("{0}", exp.Message);
      return;
   }

   // Convert the binary input into Base64 UUEncoded output.
   // Each 3 byte sequence in the source data becomes a 4 byte
   // sequence in the character array. 
   long arrayLength = (long) ((4.0d/3.0d) * binaryData.Length);

   // If array length is not divisible by 4, go up to the next
   // multiple of 4.
   if (arrayLength % 4 != 0) {
      arrayLength += 4 - arrayLength % 4;
   }

   char[] base64CharArray = new char[arrayLength];
   try {
      System.Convert.ToBase64CharArray(binaryData, 
                               0,
                               binaryData.Length,
                               base64CharArray,
                               0);
   }
   catch (System.ArgumentNullException) {
      System.Console.WriteLine("Binary data array is null.");
      return;
   }
   catch (System.ArgumentOutOfRangeException) {
      System.Console.WriteLine("Char Array is not large enough.");
      return;
   }

   // Write the UUEncoded version to the output file.
   System.IO.StreamWriter outFile; 
   try {
      outFile = new System.IO.StreamWriter(outputFileName,
                              false,
                              System.Text.Encoding.ASCII);          
      outFile.Write(base64CharArray);
      outFile.Close();
   }
   catch (System.Exception exp) {
      // Error creating stream or writing to it.
      System.Console.WriteLine("{0}", exp.Message);
   }
}

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: