【问题标题】:Problems with FileInfoFileInfo 的问题
【发布时间】:2011-07-04 09:30:51
【问题描述】:

我是意大利用户,我有以下目录:

  • Utenti(作为用户)
  • Immagini(如图片)
  • 等等。

现在,当我使用 Windows SDK DSearch API 搜索文件时,我得到了这个路径:

C:\Utenti\\myfile.txt

当我调用时:

FileInfo file = new FileInfo(@"C:\Utenti\<User>\myfile.txt");

字段 file.Length 引发异常 (FileNotFound)。 但如果我使用:

FileInfo file = new FileInfo(@"C:\Users\<User>\myfile.txt");

file.Length 工作正常。

我该如何解决这个问题?

【问题讨论】:

    标签: c# locale fileinfo


    【解决方案1】:

    使用Environment.GetFolderPath(Environment.SpecialFolder....)); 检索您需要的文件夹。

    如果您从其他地方获得本地化路径,您可以通过查看以下问题尝试与本地化的实际特殊文件夹匹配: How to get the actual (localized) folder names? 基本上这次巡演使用(互操作) SHGetLocalizedName函数。

    【讨论】:

    • 他不能,路径是Search API返回的
    • @Guillaume 你是对的,我更好地阅读了这个问题:也许将特殊文件夹路径列表存储在字典中然后查找就可以了......
    • 确切的纪尧姆。但我想知道是否有办法自动完成。
    • @Cecco 我改进了答案。
    • 谢谢菲利斯。我尝试使用这个脚本,我会告诉你它是否有效。 OT:你是意大利人吗?
    【解决方案2】:

    众所周知的文件夹和文件名仅在 UI 级别进行本地化。您必须通过代码中的正确名称访问它们。

    也许Environment.SpecialFolder 枚举可以帮助您。

    【讨论】:

    • 对不起,我没听懂。 Environment.SpecialFolder 字段给了我“用户”目录的路径,但搜索 sn-p 也可以返回另一个目录(例如,C:\Temp 或 C:\Windows)。我必须只替换具有“Utenti”或类似(图像、视频等)的路径。我必须手动操作吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多