创建没有文件c#的文件流

创建没有文件c#的文件流,第1张

概述是否可以在没有实际文件的情况下创建文件流? 我会试着解释一下: 我知道如何从真实文件创建流: FileStream s = new FileStream("FilePath", FileMode.Open, FileAccess.Read); 但我可以创建一个伪文件的fileStream吗? 含义:  定义属性,如名称,类型,大小,以及其他任何必要的东西,对某些文件对象(有这样的东西吗?),没有内 是否可以在没有实际文件的情况下创建文件流?

我会试着解释一下:

我知道如何从真实文件创建流:

fileStream s = new fileStream("filePath",fileMode.Open,fileAccess.Read);

但我可以创建一个伪文件的fileStream吗?

含义:
 定义属性,如名称,类型,大小,以及其他任何必要的东西,对某些文件对象(有这样的东西吗?),没有内容,只有所有的属性,
然后从这个“文件”创建一个fileStream?得到的结果与上面的代码类似?

编辑.

我正在使用具有该代码的API示例:

fileStream s = new fileStream("filePath",fileAccess.Read);        try        {            SolFS.solFsstream stream = new SolFS.solFsstream(Storage,Fullname,true,false,"pswd",SolFS.solFSEncryption.ecAES256_SHA256,0);            try            {                byte[] buffer = new byte[1024*1024];                long ToRead = 0;                while (s.position < s.Length)                {                    if (s.Length - s.position < 1024*1024)                        ToRead = s.Length - s.position;                    else                        ToRead = 1024 * 1024;                    s.Read(buffer,(int) ToRead);                    stream.Write(buffer,(int) ToRead);                }

所以它基本上是在某处写入fileStream“s”.
我不想拿一个现有的文件写它,但我想“创建”一个没有内容的不同文件(我不需要内容),但要拥有真实文件的属性,如大小,名称,键入

解决方法 显然,您希望拥有一个 FileStream(明确使用其特定于fileStream的属性,如 Name),它不指向文件.

据我所知,这是不可能基于fileStream的实现.

但是,创建具有所需属性的包装类将是一个简单的解决方案:

>您可以在包装器中存储所需的所有属性.
>包装器可以包装任意Stream,因此您可以自由选择fileStream,MemoryStream或任何其他流类型.

这是一个例子:

public class StreamContainer{    public StreamContainer(string name,Stream contents)    {        if (name == null) {            throw new ArgumentNullException("name");        }        if (contents == null) {            throw new ArgumentNullException("contents");        }        this.name = name;        this.contents = contents;    }    private Readonly string name;    public string name {        get {            return name;        }    }    private Readonly Stream contents;    public Stream Contents {        get {            return contents;        }    }}

当然,您可以为各种流类型添加一些礼貌的创建方法(作为上述类中的静态方法):

public static StreamContainer CreateForfile(string path){    return new StreamContainer(path,new fileStream(path,fileAccess.Read));}public static StreamContainer CreateWithoutfile(string name){    return new StreamContainer(name,new MemoryStream());}

在您的应用程序中,无论您想要使用这样的命名流,都要传递StreamContainer,而不是直接期望Stream.

总结

以上是内存溢出为你收集整理的创建没有文件c#的文件流全部内容,希望文章能够帮你解决创建没有文件c#的文件流所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1230300.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存