【问题标题】:Determine file or directory from string从字符串确定文件或目录
【发布时间】:2019-01-29 11:14:18
【问题描述】:

我正在尝试从 Zip 文件中提取一些文件,但我使用的 FastZip.ExtractZip 方法存在一些问题,例如:

Output location: C:\testing\output\

File 1: PhysicalMemory/idx - this is a file, but is created as a directory
File 2: c:/pagefile.sys/00000052 - This is a directory, but is created as a file
File 3: c:/pagefile.sys/00000052/index - This is a file, but is created as a directory

我不确定如何正确地将它们识别为文件或目录,因为某些文件没有文件扩展名,FastZip 包似乎使用它来识别文件。

ZipEntry 类有一个 isDirectory 方法,但它对每个条目都返回 false,所以我不能使用它。

有人对如何解决这个问题有任何建议吗?

【问题讨论】:

  • 你怎么知道这些条目是错误的?你将如何编写代码来确定哪个条目是正确的或错误的?无论哪种方式,我怀疑您将不得不修改您正在使用的 Zip 库。
  • 一些代码可能有用。
  • 我知道正确的路径,因为我有完整的 zip 内容列表
  • 您可以see how this is implemented。它期望条目以\ 结尾或具有某些属性。你试过内置的ZipFile.ExtractToDirectory吗?
  • 你有一个pagefile.sys 是一个文件夹??

标签: c# sharpziplib


【解决方案1】:

编写自己的is目录方法建立文件或目录

    public bool isDirectory(string path)
    {
    FileAttributes attr = File.GetAttributes(path);

    if (attr.HasFlag(FileAttributes.Directory))
        return true;
    else
        return false;
    }

【讨论】:

  • 鉴于current implementation 似乎做了类似的事情,我不太相信这会解决它。
  • 好主意,但这需要文件已经在磁盘上才能被检查。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-11
  • 2012-06-26
  • 2017-06-19
  • 1970-01-01
  • 2014-10-03
  • 2016-07-03
  • 1970-01-01
相关资源
最近更新 更多