Ich verwende eine .NET-Bibliotheksfunktion, die Dateien auf einen Server hochlädt und als Parameter einen Pfad zu einer Datei verwendet. Die Daten, die ich senden möchte, sind klein und werden zur Laufzeit erstellt. Ich kann es in einer temporären Datei speichern und dann hochladen.
Da meine Anwendung in einer Vielzahl von Umgebungen eingesetzt wird und ich nicht weiß, ob ich die temporäre Datei zuverlässig erstellen kann, wäre es besser, einen Pfad zu einer virtuellen Datei übergeben zu können im Speicher.
Ich kann die Bibliothek nicht ändern; Ich weiß, dass es Folgendes in der Datei ausführt:
%Vor%Ist es möglich, das Schreiben der Datei auf die Festplatte zu vermeiden?
Danke
Bearbeiten:
Der Bibliotheksaufruf ist Webclient.UploadFile, wie in den Antworten darauf hingewiesen, gibt es viele Möglichkeiten, um zu umgehen, einschließlich der Verwendung von alternativen Bibliotheken, von denen es viele gibt.
Nein, Ihre Bibliothek ist in diesem Aspekt grundsätzlich unflexibel, indem sie FileStream
verwendet.
Optionen:
Wenn die Bibliothek eine andere Methode verfügbar macht, die ein Stream
akzeptiert, könnten Sie ein MemoryStream
.
Wenn es eine SafeFileHandle
akzeptiert, könnten Sie eine MemoryMappedFile
verwenden. .
Andernfalls müssen Sie mit einer Datei auf der Festplatte zufrieden sein.
Wenn ich Sie richtig verstanden habe, möchten Sie eine der anderen WebClient.Upload*
-Methoden verwenden. Wenn Sie beispielsweise Ihre Daten in byte[]
gespeichert haben, verwenden Sie UploadData
.
Eine weitere Option, wenn Sie die Daten als Stream hochladen möchten, ist OpenWrite
.