- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
theoJLS ,如果主机文件系统不支持 Unicode,则可以“破坏”包含非 ASCII 字符的包名称。例如,包 é
trở nên @00e9
,papierMâché
投影到文件时变成 papierM@00e2ch@00e9
系统。
问题是:是否有可能对 Java 源文件(其名称必须与相应的 Java 类名称一致)实现同样的效果?
问题的背景是我需要在我的公共(public)类名('é'
、'\u00e9'
)中有一个带尖音符的重音 e。 是的,我知道我不应该,文件名中的 Unicode 是一种不当行为,但我仍然需要它。
但是,无论是 Mac OS X 还是底层的 HFS+ 文件系统都不允许文件名中的这个字符,将其替换为“e”,紧接着是 COMBINING ACUTE ACCENT
(“e\u0301”
)。此行为与 NTFS 或 ext3/ext4 完全不同,其中名为 "\u00e9"
Và "e\u0301"
的两个文件可以共存于同一目录中(测试存储库是 đây )。
上述 HFS+ 行为导致 2 个问题:
javac
编译我的类,因为类名和文件名不一样(虽然我能够sử dụng编译它们Maven hoặc ecj)。.
$ git status .
# On branch master
# Untracked files:
# (use "git add ..." to include in what will be committed)
#
# "src/main/java/com/intersystems/persistence/Cache\314\201ExtremeConnectionParameters.java"
# "src/main/java/com/intersystems/persistence/Cache\314\201ExtremePersister.java"
# "src/main/java/com/intersystems/persistence/Cache\314\201JdbcConnectionParameters.java"
# "src/main/java/com/intersystems/persistence/Cache\314\201JdbcPersister.java"
# "src/main/java/com/intersystems/persistence/ui/Cache\314\201JdbcConnectionParametersPanel.java"
nothing added to commit but untracked files present (use "git add" to track)
câu trả lời hay nhất
如果您希望您的名称ASCII 安全,那么您可以将您的java 文件命名为papierM@00e2ch@00e9.java
。 ,并确保它在任何其他类尝试引用它之前得到编译。这会起作用,因为
不需要必须是
, 然而这是常见的做法,编译器不会尝试编译 ClassA
từ ADifferentFilename.java
,出于显而易见的原因。但是,如果 ADifferentFilename.java
已经编译为 ClassA.class
, 那么它将起作用。
除此之外,您在以纯 ASCII 命名文件方面运气不佳。
顺便说一句,您提到您已经使用 .gitignore
解决了 git 问题文件,但是您可能会发现更好的方法是 enable the precomposeunicode option in git .
git config --global core.precomposeunicode true
如果你使用它,那么你应该能够拥有你的文件 papierMâché.java
并从所有 Linux、Mac 和 Windows 访问它。
关于java - HFS+ 文件系统上 Java 类名称中的非 ASCII 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18866947/
macOS HFS+ 支持透明文件系统级压缩。如何通过编程 API 为某些文件启用此压缩? (例如 Cocoa 或 C 接口(interface)) 我想达到ditto --hfsCompressio
我似乎无法获得有关是否可以在带有 Java 7 或 8 的 OS X 10.9 上使用 AclFileAttributeView 进行 HFS+ ACL 的任何信息。 我从 API docs 中提取的
我在一个网站上工作,该网站应该存储压缩存档文件以供下载,适用于不同平台(Mac 和 Windows)。 不幸的是,Mac 版本的下载使用“资源 fork ”,据我所知,这是 MacOS 文件系统的供应
如何从 HFS 模型输出中抓取轮廓?我正在尝试检测地板。任何帮助将不胜感激。 最佳答案 由于地板有特定的颜色范围,我们可以使用 cv2.inRange() 来设置颜色阈值。我们将图像转换为 HSV 格
这个问题在这里已经有了答案: What is the file system on iphone? (4 个答案) 关闭 9 年前。 有人知道 iOS 使用哪个文件系统吗?我用谷歌搜索但没有找到任何
苹果文档说: [...] current file systems such as HFS+ (used by Mac OS X) allow you to create filenames with
我正在尝试为 Mac OS X 上完整路径字符串的最大长度找到一个明确的答案(例如 Apple 开发人员文档)。我已经看到各种非权威网站声明它是无限的,4096 个字符, 或 1024 个字符,但无法
我正在研究 WebView 上的拖放功能。在html5环境下有没有类似hfspromise(cocoa环境)的拖放功能? 我期待类似的情况,如果我从必须使用剪贴板下载文件的位置传递 url,则该文件应
我正在阅读仍然使用 HFS 样式路径的旧文件,例如 VolumeName:Folder:File。 我需要将它们转换成 POSIX 路径。 我不喜欢进行字符串替换,因为它有点棘手,我也不想为此任务调用
根据JLS ,如果主机文件系统不支持 Unicode,则可以“破坏”包含非 ASCII 字符的包名称。例如,包 é 变成 @00e9,papierMâché 投影到文件时变成 papierM@00e2
我正在尝试在我的 Mac 应用程序中启动拖动。我希望拖动功能既提供 native UTI,又提供文件 promise ,以便用户可以将剪辑拖动到桌面。 根据 Apple 的 obsolete docu
我一直在使用 dd_rescue 恢复硬盘,它为我提供了由于硬件错误而无法复制的所有设备扇区的列表。 我想获取该列表,并编写一个工具来为我提供包含这些坏扇区的所有文件,以便我可以删除它们。我不确定可以
我知道资源分支在 Mac OS X 中已被弃用。 尚不清楚不太知名和很少使用的命名 fork 是否也被弃用。 HFS+ 实际上支持任何文件的任意数量的任意长度的 fork 。 (Mac 的命名 for
我正在为基于 Linux 的嵌入式系统开发,其中我有一个来自 hell 的构建过程,至少要生成一个完整的可闪存二进制文件——大量的依赖项、专有编译器等。为了使新的开发设置更容易开发人员和我们开发团队的
我正在寻找一种在不同文件系统上使用旧 ctime 创建文件的方法。在 Linux ext 上,这是通过使用 触摸/path/to/file debugfs -w -R 'set_inode_field
我在 HDFS 上工作,并在 hfs-site.xml 中将复制因子设置为 1,如下所示: dfs.replication 1 dfs.namenode
我一直遇到这个问题,我发现网络上没有相关信息,我希望得到一些帮助,因为过去几天我一直在研究这个问题,但没有任何线索。 为什么我的 java 应用程序突然停止为 APFS 工作?如果我将应用程序移动到非
我的来源是一个旧的外部硬盘驱动器,格式化为 HFS+(以前是来自运行 10.4.11 的服务器的数据),连接到运行 10.8.5 的 iMac,升级版本为 rsync 3.0.9。 目标是运行 rsy
背景 我试图使用 netatalk创建 Time Capsule使用 Raspberry Pi 3 ,按照教程here .部分版本信息: netatalk 3.1.12 macOS 10.14.5 树
在我们的大学项目中,进行了以下调用: sem_t *handle = sem_open("/6770::BitCompressedVector::allocate", 512, 420, 1); 正如
Tôi là một lập trình viên xuất sắc, rất giỏi!