代码之家  ›  专栏  ›  技术社区  ›  Rihan Meij

是否有更正确的类型来将文件路径和文件名传递给方法

  •  5
  • Rihan Meij  · 技术社区  · 14 年前

    我所说的这个问题是,当需要存储或传递一个URL时,使用字符串可能是一种糟糕的做法,更好的方法是使用一个URI类型。然而,要使复杂的事情变得复杂和膨胀是很容易的。

    所以,如果我要写磁盘上的一个文件,我是将一个字符串作为文件名和文件路径传递给它,还是有一个更好的类型更适合这个需求?

    这段代码看起来很笨拙,而且容易出错?我还需要做一点检查它是否是有效的文件名,字符串是否包含数据,列表是否继续。

    专用void存储文件(字符串文件名和路径) { //用于保存文件的普通内容 }

    5 回复  |  直到 12 年前
        1
  •  5
  •   philiphobgen    14 年前

    文件名可以使用字符串。.NET框架使用字符串作为文件名,这似乎很好。

    要验证文件名,您可以尝试使用正则表达式,或者根据system.io.path.getInvalidFileNameChars检查无效字符。但是,通过处理在尝试创建文件时会发生的异常情况,可能更容易处理无效文件名的异常情况,而且您仍然需要这样做….

        2
  •  4
  •   Jon Skeet    14 年前

    虽然很不幸,但字符串是在.NET中执行此操作的惯用方法-如果您查看 FileStream 构造函数等,它们使用字符串。

    能够 考虑使用 FileInfo (或) DirectoryInfo )但这有点不寻常。

        3
  •  1
  •   riffnl    14 年前

    您可以使用fileinfo(从system.io)传递它,但是字符串在引用文件时或多或少是标准的。

    您可以始终使用path.getFileName(yourstring)从路径中获取文件名。

        4
  •  0
  •   Bernard Chen    14 年前

    字符串是可以的,但您应该做些努力,以确保文件被保存到您期望的目录中。

        5
  •  0
  •   B.Mo    14 年前

    如果使用的是文件路径,则通常使用字符串。

    如果您使用的是URL,则可以考虑使用 系统URI 类,例如

    Uri myUri = new Uri(myUrl, UriKind.Absolute);
    

    这将允许您使用诸如uri.host、uri.absolute path等属性。它还将为URL中的单独子文件夹提供一个字符串数组(段)。

    这里的MSDN信息: System.Uri