Những ký tự nào có thể được sử dụng để thay thế cho dấu hai chấm trong tên thư mục bằng cách sử dụng thời gian trong ngày?


9

Việc đặt tên các tệp và thư mục theo ngày và giờ rất thuận tiện, chẳng hạn như định dạng ISO 8601 tiêu chuẩn : 2014-12-10T22:35:28.460Z.

Thật không may, hệ thống tệp HFS + của Mac sử dụng COLON làm trình phân tách đường dẫn giống như các HĐH giống Unix sử dụng SOLIDUS /(gạch chéo) và Microsoft OS sử dụng REVERSE SOLIDUS \(dấu gạch chéo ngược). Tất cả ba ký tự phải được tránh khi đặt tên tệp hoặc thư mục để tương thích.

Nhân vật nào có thể được sử dụng phổ biến để thay thế cho COLON?

  • Việc sử dụng HYPHEN -khiến cho việc lập trình đảo ngược chuyển đổi sang định dạng chuẩn trở nên khó khăn.
  • Tương tự, sử dụng FULL STOP .(dấu chấm ) làm cho việc chuyển đổi ngược trở nên khó khăn vì chúng sẽ bị hiểu sai là giây phân số.

Ví dụ: khi lập trình trong Java 8 trên OS X Mountain Lion, việc gọi File::mkdir()chuỗi 2014-12-11T21:33:08kết quả trong một thư mục có tên 2014-12-11T21/33/08.


3
Khá nhiều hệ thống tập tin hiện đại hỗ trợ không gian trong tên tập tin. Ngoài ra, nếu khả năng đọc không phải là vấn đề đáng lo ngại, tại sao không loại bỏ các ký tự vi phạm và sử dụng định dạng đã đặt, ví dụ: YYYYMMDDTHHMMSSZ.
Brian Duke

Tại sao không chỉ sử dụng: nó dường như hoạt động tốt từ vỏ. Tôi nghi ngờ chỉ có HĐH <= 9 và cổ điển có vấn đề với: vì vậy ngày nay là một vấn đề. AL: vì vậy MS OS có thể sử dụng / làm phân chia thư mục
user151019

@Mark Các phiên bản hiện đại của Finder có thể xử lý dấu hai chấm. Nhưng trong quá trình truy cập chương trình, vấn đề xảy ra sau đó.
Basil Bourque

Tôi chưa bao giờ gặp khó khăn khi truy cập một tệp có dấu hai chấm trong tên. Nó trông có vẻ kỳ lạ từ Finder, vì nó đã chuyển sang một dấu gạch chéo.
0942v8653

2
Cụ thể, HFS + cho phép tên tệp chứa / nhưng không chứa dấu hai chấm. Khi ở Terminal (hoặc bất cứ nơi nào hệ thống tệp được truy cập bằng API POSIX thay vì API Macintosh), / trong tên được lưu trữ trên đĩa được dịch thành: trong RAM và: trong RAM được dịch trở lại / dưới dạng tên tệp mới được lưu trữ trong danh mục. Các chương trình sử dụng API Macintosh truyền thống không bị ảnh hưởng và xem / giống như nó xuất hiện trên đĩa. Theo cách này, mỗi API chỉ có một ký tự bị cấm (tốt, hai nếu bạn đếm NUL) và chỉ có một dấu tách tên tệp duy nhất, mà không can thiệp lẫn nhau.
ganbustein

Câu trả lời:


6

Biến thể cơ bản ISO 8601

Bạn có thể tránh sử dụng dấu hai chấm bằng cách sử dụng các chuỗi định dạng cơ bản ISO 8601 ( YYYYMMDDTHHMMSSZ) để đặt tên tệp và thư mục. Tiêu chuẩn cho phép các dấu phân cách được bỏ qua khỏi YYYY-MM-DDTHH:MM:SSZđịnh dạng.

Vì vậy, cả hai ví dụ này đều hợp lệ theo tiêu chuẩn:

2016 / 03-27T07: 01: 02Z

20160327T070102Z

Nếu bạn cần xử lý các chuỗi đó bằng các ngôn ngữ lập trình hoặc kịch bản nhất định thì có lẽ bạn phải chuyển đổi chúng sang định dạng mở rộng kết hợp các dấu phân cách (dấu gạch nối, dấu hai chấm) và thông tin múi giờ.

Ký hiệu ngày và giờ tiêu chuẩn quốc tế - "Nếu ngày và giá trị thời gian được lưu trữ cùng nhau trong một trường dữ liệu duy nhất, thì ISO 8601 gợi ý rằng chúng nên được phân tách bằng chữ Tin hoa Latin , như trong 19951231T235959". Vì vậy, Tở giữa là tùy chọn ( 19951231235959) nhưng được đề xuất.


Giải pháp tốt. Thật vậy, các thư viện thời gian ngày tốt hơn như khung java.time được tích hợp trong Java 8 trở lên cũng như Joda-Time không gặp vấn đề gì khi phân tích định dạng cơ bản của cơ sở dữ liệu hoặc định dạng dài hơn chứa các dấu phân cách.
Basil Bourque

3

Dấu hai chấm được nâng lên, Unicode 0x02F8 (dấu hai chấm ˸ so với dấu hai chấm :) sẽ không được hiểu là dấu phân cách bởi Finder hoặc các tập lệnh khác. (Thông tin thêm về dấu hai chấm ở đây: http://www.charbase.com/02f8-unicode-modifier-letter-raised-colon )

Cách nhập ký tự đó khác nhau, tùy thuộc vào phiên bản OS X của bạn. Thông tin chi tiết có thể được tìm thấy tại trang hỗ trợ của Apple: http://support.apple.com/en-us/HT201586


3
Ý tưởng thú vị. Câu trả lời này gần như quá thông minh. Nhìn rất giống như COLON thông thường có thể gây nhầm lẫn khi phân tích cú pháp.
Basil Bourque

0

Dấu câu trong tiếng Do Thái hoạt động rất tốt đối với tôi ... unicode 05C3 ...


2
xem ra, rằng tiếng Do Thái thực sự có thể làm mọi thứ rối tung lên khi tiếp giáp với những con số! Hãy thử gõ 1(tiếng Do Thái đại tràng) 2. Nó ám chỉ ngược như 2:1! Một cái gì đó với hướng Do Thái từ phải sang trái. Dù sao, sẽ vô cùng khó hiểu nếu cố gắng sử dụng với các ngôn ngữ từ trái sang phải.
wvducky

Có lẽ đó không phải là một sự thay thế tuyệt vời nếu trình kết xuất văn bản cố gắng chuyển sang chế độ RTL khi họ gặp nhân vật này :(
Matt M.

0

Tôi cũng đã điều tra điều này. Hầu hết các glyphs thay thế bằng từ 'ruột' trong mô tả là decidedly không hấp dẫn như một sự thay thế dấu hai chấm ( ˸, ܄, , , :,, and꞉`).

Có một cách khác là ít nhất có độ rộng ký tự tương tự với dấu hai chấm gốc - ký hiệu toán học cho tỷ lệ : . Nó trông tuyệt vời trong một số phông chữ đơn cách, nhưng nó hơi nhỏ trong phông chữ hệ thống MacOS mặc định.

Ở đây nó đang được sử dụng trong một tên tệp:

/Users/me/Books/Book Title: Book Subtitle.pdf [glyph đại tràng hạn chế] /Users/me/Books/Book Title∶ Book Subtitle.pdf [glyph tỷ lệ được phép]

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.