2015-06-19 36 views
-2

如何假裝沒有實際加載文件的文件?挑戰不在於創建臨時文件或從硬盤加載任何內容。我寧願將所有內容都放在「記憶」中。假裝沒有從硬盤加載它的文件

在記憶對我意味着其現有的類從流initalized衍生物,並具有一流的工作像它從硬盤加載的文件,但它沒有...

+0

甲流不能指定文件名或擴展。如果你想一起獲取數據和名稱,那麼爲什麼不創建一個具有'字符串Filename'和'string FileExtension''屬性加上一個MemoryStream的類呢? – Marwie

+0

哪個派生流允許我設置文件名或擴展名? –

+0

你自己繼承的那個? – Marwie

回答

3

內存流不是一個文件。這只是數據。在內存流上設置文件名和擴展名的概念根本沒有意義 - 它不會超過byte[]

+0

如何在不加載文件的情況下使用FileStream?這一點不是類MemoryStream,但不保存文件只是爲了設置文件名或擴展名。 –

+0

FileStream仍然只是一個流(類)而不是文件。例如:FileStream fs = File.Create(path);它是文件,而不是FileStream,它創建文件本身 – Fabjan

+0

流派生允許我設置文件名或擴展名?沒有將文件存儲在硬盤上並加載它? –

-1

不僅內存,而且任何類型的Stream(FileStream,CryptoStream)都只是一個適用於數據流的類。它不能創建文件。

請特別考慮使用System.IO和File類。

+0

FileStream可能具有諸如文件名和擴展名之類的屬性,那麼在沒有實際保存文件並加載它的情況下,創建所有文件的正確方法是什麼。對我而言,使用挑戰的流是沒有保存和加載文件的,這對我來說並不重要。 –

+0

文件是流不應該直接操作,除了傳遞數據到/從它 – Fabjan

+0

如何假裝沒有實際加載文件在內存中的文件? –

0

您可以創建一個子類來跟蹤文件名,像這樣

class MemoryStreamWithFile: MemoryStream 
{ 
    public string Filename { get; set; } 
} 
+0

我需要已經存在的課程,而不是我自己的課程。 :) –

+0

爲什麼你不能寫自己的班級? – vidstige

+0

因爲它所以... –

相關問題