如何在 Windows 上使用 dart 编辑隐藏文件?

How to edit hidden files with dart on windows?

提问人:Lenny4 提问时间:5/11/2023 最后编辑:phuclvLenny4 更新时间:6/13/2023 访问量:71

问:

视窗 10

这是我的代码:

import 'dart:io';

void main(List<String> args) {
  File('C:\\Users\\alexa\\Documents\\test\\my-file.txt').writeAsString("some-text"); // got error if hidden, no error if not hidden
}

当我在 Windows 上运行此代码并且文件未隐藏时,一切正常。

但是当我隐藏文件时,出现错误:

Unhandled Exception: PathAccessException: Cannot open file, path = 'C:\Users\alexa\Documents\test\my-file.txt' (OS Error: Accès refusé.

, errno = 5)

请注意,当我在隐藏文件上运行此代码时,我会得到该文件的数据:

import 'dart:io';

void main(List<String> args) {
  File('C:\\Users\\alexa\\Documents\\test\\my-file.txt').readAsStringSync(); // everything works fine here, even on hidden file
}

在这两种情况下,文件都未处于只读模式。他只有+H属性

+R - 使用 +R 选项将文件设置为只读。只读文件可能是 已读,但无法更改或删除。

-R - 使用 -R 选项将文件保护属性更改回正常属性(以便可以读取、更改或删除)。

+A - 使用 +A 选项设置文件的 ARCHIVE 属性。使用 +A 选项时,这会将文件标记为可用于存档 使用 BACKUP 或 XCOPY 命令时。

-A - 使用 -A 选项关闭 ARCHIVE 属性。

+H - 在 DOS 版本 4 到 6 中,使用 +H 选项设置文件的 HIDDEN 属性,使其不会出现在目录中 清单。

-H - 使用 -H 选项关闭 HIDDEN 属性。

+S - 对于版本 4 之后的 DOS 版本,请使用 +S 选项设置文件的 SYSTEM 属性。当使用 +S 选项时,这会标记 file 作为命令文件,仅供 DOS 使用。该文件不会出现在 目录列表。此属性通常保留给 程序员。

-S - 使用 -S 选项关闭 SYSTEM 属性。

/S - 使用 /S 开关设置找到的子目录的属性 在指定的路径内。

enter image description here

为什么我不能用dart编辑隐藏文件?

Windows Dart 隐藏文件

评论

1赞 jamesdlin 5/15/2023
这可能是一个错误。如果您还没有这样做,我建议您提交问题。
0赞 Lenny4 5/15/2023
创建的问题: github.com/dart-lang/sdk/issues/52401

答:

0赞 Lenny4 5/15/2023 #1

我没有找到为什么你不能用dart在Windows上编辑隐藏文件,所以我创建了一个隐藏文件夹,并将我的文件移动到这个文件夹中,使我的文件可见。