执行ZipFile.ExtractToDirectory()后删除SD卡是否安全?

时间:2013-09-06 08:57:08

标签: c# .net-4.5

我需要将zip文件的内容提取到SD卡。

ZipFile.ExtractToDirectory(@"D:\RcCardData.zip", this.selectedDrive);

像魅力一样工作。 但是我想知道这是否使用了磁盘的Write-cache。 如果是,是否有办法确保在告诉用户他可以删除卡之前将所有数据写入卡中?

起初我尝试使用代码来“安全删除”SD卡,但问题在于它是弹出整个USB读卡器而不仅仅是卡。

更新

我已就此事做了一些额外的研究。

通过 dotPeek 查看ExtractToDirectory的代码时,可归结为以下方法:

 public static void ExtractToFile(this ZipArchiveEntry source, string destinationFileName, bool overwrite)
    {
      if (source == null)
        throw new ArgumentNullException("source");
      if (destinationFileName == null)
        throw new ArgumentNullException("destinationFileName");
      FileMode mode = overwrite ? FileMode.Create : FileMode.CreateNew;
      using (Stream destination = (Stream) File.Open(destinationFileName, mode, FileAccess.Write, FileShare.None))
      {
        using (Stream stream = source.Open())
          stream.CopyTo(destination);
      }
      File.SetLastWriteTime(destinationFileName, source.LastWriteTime.DateTime);
    }

由于在退出使用块时在流上执行Dispose(),因此流为Close() - d和Flush() - ed。

现在我最近读过某个地方,因为.Net 4.0执行刷新时写入缓存被清空(不确定)?

根据上面提供的额外信息,有人可以告诉我在提取完成后是否可以安全地移除SD卡?

0 个答案:

没有答案