问题标签 [file-attributes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6472 浏览

mingw - Msys shell 命令更改文件的属性

请让我知道可用于更改文件属性的 MSYS shell 命令。当我运行命令时,ls -l我得到以下信息:

我想提供完全访问权限。

非常感谢任何帮助。

谢谢

0 投票
1 回答
540 浏览

bash - 切换文件不可变

我制作了一个简单的小 bash 脚本来切换一些文件(特别是我的桌面图标,因此它们在不应该移动时不会移动)

我有使文件 [im] 可变的命令:

但是,要使脚本切换状态,我需要检查状态并采取相应措施。但我不太擅长 bash 代码,一些谷歌搜索并没有找到任何解决方案

答案可能与“lsattr”和“grep”有关,但我不确定它们应该采用哪种形式......

(如果答案可以是 if 语句的形式,那就太好了:D)

0 投票
2 回答
2797 浏览

c# - FileAttributes.Encrypted 如何在 C# 中工作?

我在谷歌上没有找到任何例子......谁能展示它是如何工作的?当文件夹和文件将被加密时,如何解密它们?

链接: FileAttributes 枚举

0 投票
1 回答
1848 浏览

delphi - 为什么在更改文件属性时会丢失 UTF-8 BOM?

我有一个测试 Delphi 应用程序,它使用 TFileStream 将 UTF-8 BOM 写入文本文件,然后是一个虚拟的文本行。

一切都按预期工作,并且使用 Notepad++ 的十六进制查看器插件,我在输出文本文件中看到了 BOM。但是,如果我在重新打开文件时更改文本文件的属性(在 Delphi 中以编程方式或通过 Windows 资源管理器),则 BOM 已被删除。

将 BOM 和虚拟数据写入文件的示例代码:

0 投票
1 回答
4211 浏览

java - 不允许使用 java.nio.file.Files.setOwner()

我正在用 Java 编写一个考勤程序以供课堂使用;我的目标是让学生将课程文件下载到他们的帐户(我们将在同一个网络上工作),然后使用他们的用户名和每天都会更改的密码运行它们。我的程序运行良好,但我遇到了一个似乎无法克服的错误。

当它在任何一天第一次运行时,attend.java 将在我帐户的指定目录中创建一个新的文本文件,然后将运行程序的用户名附加到文件中(目前它只是附加第一个参数程序到文件,但我希望修改它,使其更准确,没有人可以提供虚假的用户名),从而编制学生名单。

例如,运行:

将使用给定的密码“cheesecake”,如果它与当天的密码匹配,则创建一个名为“(今天的日期).txt”的新文本文件并将用户名“desadams”写入其中(如果它是当天第一次运行) 或者简单地将用户名“desadams”附加到预先存在的“(今天的日期).txt”文件中。

我编写了自己的 createFile() 方法,该方法利用 java.nio.file 包创建具有自定义权限的文件:

我无法同时创建文件和设置权限,因为帐户的 umask 会碍事,所以我分两步完成,效果很好。

现在我们来解决我的问题:我可以从我自己的帐户编译和运行这个程序,但是为了从其他帐户运行它,我更改了 setOwner() 方法以使用任意用户名而不是我自己的用户名来更好地模拟从不同帐户运行程序的条件。它失败了。尝试将所有者设置为运行程序的人以外的任何人都会导致“操作不允许”错误。

我已经知道 UNIX 命令chown不起作用,因为没有一个网络帐户可以访问 root 帐户,但我没想到它会阻止 Java 做同样的事情,尽管我认为它确实有意义。

有没有办法解决这个问题?当然,最简单的方法是每天在其他人之前自己运行程序,以便使用我自己的用户名创建出勤文件,然后我不必担心确保将所有者设置为我的程序本身内的用户名;它总是会找到考勤文件,因此不必使用正确的文件属性创建它。但是,尽管这可能正是我所做的,但我想知道是否有人有建议如何在程序本身中设置所有者的解决方案。

谢谢,对不起,这是一个很长的帖子。

0 投票
2 回答
277 浏览

c# - 文件属性标志由代码或操作系统控制?

我正在学习文件属性枚举,并且有两个问题我找不到具体答案(尽管我有自己的看法)。

我的应用程序检查是否已设置存档标志。在我的测试过程中,我在桌面上创建了一个 .txt 文件,并删除了要存档的标志。然后我打开文件,添加一行文本并保存文件。属性存档已重新设置。这是合乎逻辑的和可取的。

我的第一个问题是,设置标志、程序或操作系统是什么?

我的第二个问题是,我应该设置标志还是在大多数情况下我可以依赖操作系统(假设操作系统是设置标志的东西)。

0 投票
1 回答
1154 浏览

macos - Writing Spotlight metadata to files on OS X (specifically kMDItemDisplayName)

I see that this has been answered previously by Ken T., but I have a case where the code appears to work, and the call to setxattr() returns 0, but the item I want to modify does not change.

Specifically, I'm trying to change the metadata attribute kMDItemDisplayName, and my call looks like this (modeled after the sample posted by Ken T):

[Note: the "name" param below is an NSString *]

Doing an mdls on the file in question shows that the kMDItemDisplayName attribute is present, but I can't get it to change to anything other than the actual file name (which I assume is the default behavior).

Am I misunderstanding something about how setxattr() is supposed to work?

Any help very much appreciated.

Oh, BTW, why am I trying to do this? It appears (from examining how Bare Bones' Yojimbo does things) that Spotlight uses the kMDItemDisplayName value to list files in the Spotlight search results menu in the finder, which is something I'd like to implement in my app.

Thanks!


Heyyyy... wait a minute...

From the command line, doing xattr -l shows that as far as xattr knows, there is an attribute called kMDItemDisplayName, and it is what I set it to be... However, mdls on the same file still shows the kMDItemDisplayName attribute as the file name.

Do I need to be asking about Launch Services instead of xattr stuff??


0 投票
1 回答
60 浏览

c# - 哪些 Windows 程序或服务可能会更改文件的 LastAccessed 属性?

我有一个许可证文件,如果我们以外的任何程序读取该文件,我希望使该文件无效。我的想法是使用File.GetLastAccessedTime(string)并将此值保存到文件中,以便在我们重新读取文件时进行检查。

但是,我担心除了防病毒(我知道客户必须从扫描中排除我们的许可证文件)之外,可能有 Windows 服务或程序可能会接触文件并导致文件上的 LastAccessed 属性在我们程序的上下文之外更新,但没有恶意。

哪些 Windows 程序或服务可能会在后台访问此文件?这是我需要担心的合法问题吗?如果这是我应该担心的事情,是否有任何通用技术可以可靠地实现我的最终目标?

我正在寻找 .NET 4 世界中的解决方案。提前感谢您对此的任何帮助。

0 投票
1 回答
2457 浏览

fuse - FUSE 扩展属性

我正在尝试实现一个 FUSE 文件系统,包括设置/获取扩展文件属性的能力。在这种情况下,我感兴趣的属性是创建一个布尔条件以将文件标记为加密。假设我有一个名为 test.txt 的文件。在终端窗口中,我可以轻松地执行以下操作:

setfattr -n user.encrypted -v 1 test.txt

getfattr -n user.encrypted test.txt

并获得输出:

# 文件:test.txt

user.encrypted="1"

所以,我知道我的系统已正确设置为使用扩展属性。

但是我一直坚持从 FUSE 中以编程方式设置和获取这些属性。例如,我有以下功能:

当我运行它时,即使从命令行设置了这个属性,fgetxattr 也总是失败(即它返回一个值-1)。我的日志文件中的输出是:

isEncrypted = -1

显然我错误地调用了这个函数,但我不知道如何纠正这个问题。任何人都可以帮忙吗?谢谢。

0 投票
2 回答
1023 浏览

lua - 如何检查文件是否在 Lua 中可执行?

如果字符串是可执行文件的路径,我如何检查 Lua?似乎标准库和令人惊讶的 LuaFileSystem 都没有提供这样做的方法。