Konvertieren Sie Die Datei Auf Byte-Array Gegeben Sein Pfad Im Lokalen Speicher?

Die folgende Sammlung enthält Bild-Pfade in der local-storage -

public ObservableCollection<string> Paths;

Diese Datei-Pfade werden vom Benutzer ausgewählt und auf der Xamarin Android Player Sie wie folgt angezeigt:

/storage/emulated/0/Download/img1.jpg
/storage/emulated/0/Download/img2.jpg

Nun das problem ist Folgendes - ich möchte konvertieren Sie diese ausgewählte Bilder (basierend auf Ihren Pfaden) zu byte-arrays, die für das hochladen auf server.
In WPF/ASP.Net dies wäre leicht zu bewerkstelligen, indem Sie den folgenden code:

byte[] Convert = File.ReadAllBytes("somepath...");

Es scheint jedoch, dass es keine solche Sache zur Verfügung in Xamarin.Formen.

Welche Funktionen brauche ich, um zu verwenden, um in Xamarin.Formen Bild konvertieren, basierend auf den physikalischen Pfad im lokalen Speicher, der byte-array?

- - - - - -- - - - -- - - - - -- - - - -- - - - - -- - - - - -- - - - - - - - - -- - - - -- - - - - -- - - - -- - - - - -- - - - - -- - - -

UPDATE

@asp_net Versucht zu implementieren Ihre Lösung:

In meinem PCL-Projekt habe ich die folgenden zwei Dateien Hinzugefügt:

public interface IFileSystem
{
    byte[] ReadAllByteS(string path);
}

und

public static class FileUtility
{
    public static IFileSystem FileSystem { get; set; }

    public static void SetUp(IFileSystem fs)
    {
        FileSystem = fs;
    }
}

Auf Android habe ich noch folgende Datei:

class SharedFileSytem : IFileSystem
{
    public byte[] ReadAllByteS(string path)
    {
        return File.ReadAllBytes(path);
    }
}

Und ich bin ein bisschen verloren bei der Initialisierung/Registrierung von Teil - ich bin mir ziemlich sicher, dass ich brauchen, um hinzuzufügen etwas in meinem MainActivity.cs Datei.

base.OnCreate(bundle);
Xamarin.Forms.Forms.Init(this, bundle);
//?
LoadApplication(new App());

Denn derzeit, wenn ich versuche, führen Sie den folgenden code in meinem PCL-code

FileUtility.FileSystem.ReadAllByteS(somepath);

Bekomme ich die folgende Fehlermeldung:

"object reference not set to an instance of an object"
  • Zu spät, um das Spiel auf diesem, aber die akzeptierte Antwort war meine Lösung. Was fehlte, war die Registrierung der Abhängigkeit Dienst in der MainActivity. Fügen Sie die Zeile Xamarin.Formen.DependencyService.Registrieren<SharedFileSytem>(); in der OnCreate () - vorbei geritten Methode. Verwendung: Aufrufen der Abhängigkeitsdienst in der PCL durch den Aufruf DependencyService.Get<IFileSystem>().ReadAllByteS()
Schreibe einen Kommentar