Bagaimana cara membuat nama folder atau nama file dengan karakter khusus seperti \ /: *? "<> | [duplikat]

9

Masalah saya adalah, saya tidak bisa memberi nama folder atau file saya dengan karakter khusus seperti \ /: *? "<> | di OS berbasis windows Ini sangat penting bagi saya, yang memberi nama file / folder yang berisi jenis karakter ini.

Saya sudah mencari dan merujuk banyak situs, untuk masalah ini tetapi semua tidak ada harapan. Saya juga membaca halaman dukungan Microsoft, mereka menyarankan untuk menggunakan karakter lain. Ini tautannya, https://support.microsoft.com/en-us/kb/177506

Saya sudah mencoba tombol Alt + nomor kode ASCII dari jenis karakter khusus ini, dari tombol numpad, misalnya ganti nama file / folder dan tekan Alt + 60 (untuk <karakter) Masih memberi pesan itu, Nama file tidak boleh mengandung yang berikut ini karakter: \ /: *? "<> |

Sarankan saya solusi yang sesuai sehingga saya dapat memberi nama file / folder saya dengan jenis karakter khusus ini.

Kirit_Vanani
sumber
Hanya ingin tahu: untuk apa Anda membutuhkannya?
Kamil Maciorowski
@ kamil Ini untuk memberi nama file / folder saya, dan satu tugas yang menantang bagi saya.
Kirit_Vanani
@ PIMP_JUICE_IT Saya sudah melakukannya, (literalString -literalPath tetapi masih belum mendapatkan kesuksesan.
Kirit_Vanani
bahkan jika Anda dapat membuat file dengan karakter ini, tidak ada program yang dapat membuka atau menyimpannya.
Keltari
10
- Bagaimana saya bisa menjilat siku saya? - Kamu tidak bisa. - Tapi aku harus. - Anda dapat mematahkan lengan Anda dan mencoba tetapi lengan Anda akan sia-sia. - Saya tidak peduli, saya hanya perlu menjilat siku saya.
Kamil Maciorowski

Jawaban:

16

Ini sangat penting bagi saya, penamaan file / folder yang berisi karakter-karakter ini.

Ini mungkin penting bagi Anda, tetapi Anda harus melepaskan ini dan menemukan cara berbeda untuk menyelesaikan masalah Anda.

Karakter-karakter ini tidak diizinkan oleh panggilan fungsi OS Windows yang menangani nama file.

Mereka secara khusus tidak diizinkan karena mereka memiliki kegunaan lain:

  • \- Dicadangkan untuk digunakan sebagai pemisah jalur dan karakter melarikan diri
  • / - Dicadangkan untuk digunakan sebagai pemisah jalur
  • : - Dicadangkan untuk digunakan sebagai pembatas nama drive
  • *dan ?- Dicadangkan untuk digunakan sebagai karakter wildcard
  • "- Dicadangkan untuk digunakan untuk mengutip nama yang mengandung spasi
  • <, >dan |- Dicadangkan untuk digunakan sebagai operator pengalihan perintah

Anda tentu saja dapat membuat file dengan nama-nama yang mengandung karakter-karakter ini menggunakan sistem operasi yang berbeda (selama sistem operasi itu dapat membaca / menulis sistem file Windows).

Namun, Anda tidak akan dapat melakukan apa pun dengan file-file tersebut menggunakan program Windows apa pun dan mereka tidak akan memahami nama file dan akan menghasilkan kesalahan.


Penamaan File, Paths, dan Namespaces

Konvensi Penamaan

Aturan dasar berikut memungkinkan aplikasi untuk membuat dan memproses nama yang valid untuk file dan direktori, terlepas dari sistem file:

...

Gunakan karakter apa pun di halaman kode saat ini untuk sebuah nama, termasuk karakter Unicode dan karakter dalam set karakter yang diperluas (128–255), kecuali untuk yang berikut:

  • Karakter yang dipesan berikut ini:

    < (less than)
    > (greater than)
    : (colon)
    " (double quote)
    / (forward slash)
    \ (backslash)
    | (vertical bar or pipe)
    ? (question mark)
    * (asterisk)
    
  • Nilai integer nol, kadang-kadang disebut sebagai karakter ASCII NUL.
  • Karakter yang representasi bilangan bulatnya berkisar dari 1 hingga 31, kecuali untuk aliran data alternatif di mana karakter ini diizinkan. Untuk informasi lebih lanjut tentang aliran file, lihat Streaming File.
  • Karakter lain apa pun yang tidak diizinkan oleh sistem file target.

Sumber Memberi Nama File, Jalur, dan Ruang Nama


Tetapi saya benar-benar ingin melakukan ini.

Instal cygwin dan gunakan touch.

Saya belum menguji semua kemungkinan tetapi bekerja sebagai berikut:

touch :
touch \|
touch \"
touch \>

Contoh output:

DavidPostill@Hal /f/test/impossible
$ ll
total 0
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:03 '"'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 :
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 '|'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:07 '>'

Seperti yang Anda lihat mereka tidak dapat digunakan di Windows:

F:\test\impossible>dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\impossible

10/08/2016  21:07    <DIR>          .
10/08/2016  21:07    <DIR>          ..
10/08/2016  21:03                 0 
10/08/2016  21:02                 0 
10/08/2016  21:07                 0 
10/08/2016  21:02                 0 
               4 File(s)              0 bytes
               2 Dir(s)  1,772,601,536,512 bytes free

masukkan deskripsi gambar di sini

DavidPostill
sumber
Saya menghargai jawaban Anda, ini sedikit membantu, tetapi masalah saya tetap sama .. Saya pikir ada cara pengguna super lainnya untuk mengganti nama dengan karakter khusus ini.
Kirit_Vanani
2
@ Kirit Anda dapat membuat file dengan karakter tersebut tetapi Windows tidak dapat melakukan apa pun dengan karakter tersebut dan Anda akan mendapatkan kesalahan saat Anda mencoba dan menggunakan file-file itu dari dalam Windows.
DavidPostill
@ DavidPostill Ohh, Cara membuat nama file dengan karakter tersebut. Saya tidak keberatan jika ini memberikan kesalahan, tetapi sekarang tugasnya adalah memberikan jenis nama karakter ini .. Untuk mengakses file ini saya akan menggunakan os berbasis linux lainnya
Kirit_Vanani
1
@ Kirit Saya sudah memberi tahu Anda dalam jawaban "Anda tentu saja dapat membuat file dengan nama yang mengandung karakter ini menggunakan sistem operasi yang berbeda (selama sistem operasi itu dapat membaca / menulis sistem file Windows)."
DavidPostill
3
@ Roh aku sudah bilang itu tidak mungkin .
DavidPostill
3

Bangun set font Anda sendiri. Ganti beberapa karakter yang tidak Anda gunakan dengan gambar karakter yang dipesan.

Clayton
sumber
1
Itu atau menggunakan karakter yang mirip. Dengan Unicode, semuanya mungkin. 🎃
Daniel B
@ Craig620 Mungkin itu tidak mungkin, bagi saya. dapat memberi saya beberapa petunjuk untuk itu.
Kirit_Vanani
Tidak yakin, hanya ide gila yang terlintas di benak saya. Mungkin ada forum Stack Exchange untuk tipografi atau penerbitan yang bisa Anda tanyakan?
Clayton
2

Di Windows, Anda tidak dapat membuat file dengan karakter tersebut. Tidak ada solusi, karakter ini dilarang oleh Win32 API.

Win32 adalah subset dari namespace POSIX dan case-sensitive. Ini menggunakan semua karakter Unicode, kecuali: '"' '*' '/' ':' '<' '>' '?' '\' '|' NB Nama tidak dapat diakhiri dengan Dot '.', Atau Space ''.

- http://dubeyko.com/development/FileSystems/NTFS/ntfsdoc.pdf

ChrisInEdmonton
sumber
NTFS bukan masalahnya. (Bahkan memungkinkan karakter-karakter ini baik-baik saja - itu harus , untuk dukungan Interix.) Masalahnya adalah Windows itu sendiri, yaitu pembatasan yang diberlakukan oleh Win32 API tidak peduli apa FS yang mendasarinya.
user1686
@grawity, Anda tampaknya benar berdasarkan penyelidikan lebih lanjut saya. Saya telah mengedit jawaban saya untuk mencerminkan ini.
ChrisInEdmonton
Saya pikir NTFS tidak masalah. Pasti ada solusinya. Ketika saya mengakses drive NTFS dari OS berbasis Linux, saya dapat mengetikkan jenis karakter ini.
Kirit_Vanani
"Nama tidak dapat diakhiri dengan Dot". Salah. Anda dapat mengajukan nama yang diakhiri dengan .. Anda tidak bisa berbuat banyak dengan mereka dari cmd:)
DavidPostill
1
@ Kirit Kamu telah diberitahu berkali-kali bahwa itu tidak mungkin .
DavidPostill