Saya sedang merancang tabel database yang akan menyimpan nama file file yang diunggah. Berapa panjang maksimum nama file di NTFS seperti yang digunakan oleh Windows XP atau Vista?
windows-vista
windows-xp
ntfs
filenames
name-length
GateKiller
sumber
sumber
Jawaban:
Komponen individual dari nama file (yaitu setiap subdirektori di sepanjang jalur, dan nama file akhir) dibatasi hingga 255 karakter, dan total panjang jalur dibatasi hingga sekitar 32.000 karakter.
Namun, pada Windows, Anda tidak dapat melebihi
MAX_PATH
nilai (259 karakter untuk file, 248 untuk folder). Lihathttp://msdn.microsoft.com/en-us/library/aa365247.aspx untuk detail lengkap.sumber
Ini 257 karakter. Lebih tepatnya: NTFS sendiri memaksakan panjang nama file maksimum beberapa ribu karakter (sekitar 30'000 sesuatu). Namun, Windows menerapkan panjang maksimum 260 untuk Path + Nama file. Drive + folder membutuhkan setidaknya 3 karakter, jadi Anda berakhir dengan 257.
sumber
Ini adalah apa yang dikatakan "Pengecualian Tidak Tertangani" pada framework 4.5 ketika mencoba menyimpan file dengan nama file yang panjang:
sumber
199 pada Windows XP NTFS, saya baru saja memeriksa.
Ini bukan teori tetapi dari hanya mencoba di laptop saya. Mungkin ada efek meringankan, tetapi secara fisik tidak akan membiarkan saya membuatnya lebih besar.
Apakah ada pengaturan lain yang membatasi ini, saya bertanya-tanya? Cobalah sendiri.
sumber
w
, menghapusnya dan membuat folder dengan nama yang sama pada Windows 7 x64. Sekarang pertanyaannya adalah apa faktor pembatas di sini: versi NTFS, OS atau subsistem atau Win32 API di XP?Menurut MSDN , ini adalah 260 karakter. Ini termasuk-
"<NUL>"
null terminasi yang mengakhiri karakter, jadi panjang sebenarnya adalah 259.Tapi baca artikelnya, ini sedikit lebih rumit.
sumber
\\?\
awalan yang diperlukan pada waktu berjalan hingga beberapa panjang yang tidak ditentukan. Path harus tetap di bawah 32767 byte setelah ekspansi ini.Panjang dalam NTFS adalah 255.
NameLength
Bidang dalam$Filename
atribut NTFS adalah byte tanpa offset; ini menghasilkan kisaran 0-255.Nama file itu sendiri bisa dalam "ruang nama" yang berbeda. Sejauh ini ada: POSIX, WIN32, DOS dan (WIN32DOS - ketika nama file bisa menjadi nama asli DOS). (Karena string memiliki panjang, itu bisa berisi \ 0 tetapi itu akan menghasilkan masalah dan tidak ada dalam ruang nama di atas.)
Dengan demikian nama file atau direktori dapat mencapai 255 karakter. Saat menentukan lintasan lengkap di Windows, Anda perlu awalan lintasan dengan \\? \ (Atau gunakan \\? \ UNC \ server \ bagikan untuk lintasan UNC) untuk menandai lintasan ini sebagai jalur yang panjangnya diperluas (~ 32k karakter) . Jika jalur Anda lebih panjang, Anda harus mengatur direktori kerja Anda di sepanjang jalan (ugh - efek samping karena pengaturan proses-lebar).
sumber
255 karakter.
http://en.wikipedia.org/wiki/Filename
sumber
Saya menambahkan ini ke jawaban yang disetujui di atas.
MENJADI CLEAR, alasan orang percaya itu adalah 255-260 karakter adalah karena itu semua yang didukung oleh Windows Explorer. Ini akan kesalahan melakukan sesuatu seperti menyalin file pada nama file lebih lama dari itu. Namun, sebuah program dapat membaca dan menulis nama file yang jauh lebih lama (yang merupakan cara Anda untuk panjang lebar yang mengeluh tentang Explorer di tempat pertama). "Perbaikan yang disarankan" Microsoft dalam situasi seperti ini adalah membuka file di program asli yang menulisnya dan menamainya kembali.
sumber
Menurut dokumentasi Windows SDK (8.0) yang baru, tampaknya disediakan batas jalur baru. Ada serangkaian fungsi penanganan jalur baru dan definisi PATHCCH_MAX_CCH seperti berikut:
sumber
Bagian dari dokumentasi resmi ini mengatakan dengan jelas bahwa itu adalah 255 karakter Unicode untuk NTFS, exFAT dan FAT32, dan 127 Unicode atau 254 karakter ASCII untuk UDF.
Selain itu, panjang nama jalur maksimum selalu 32.760 karakter Unicode, dengan setiap komponen jalur tidak lebih dari 255 karakter.
sumber
WCHAR
elemen. Tidak, ini bukan "Karakter Unicode" (periksa terminologi Unicode Anda: titik kode, karakter dll ...!).255 karakter, meskipun jalur lengkap tidak boleh lebih lama dari itu juga. Ada tabel yang bagus di Wikipedia tentang ini: http://en.wikipedia.org/wiki/Filename .
sumber
238! Saya memeriksanya di bawah Win7 32 bit dengan skrip kelelawar berikut:
sumber
w
). Jadi bagaimana sekarang?Sebenarnya ini adalah 256, lihat Perbandingan Fungsi Sistem File, Batas .
Untuk mengulangi posting di http://fixunix.com/microsoft-windows/30758-windows-xp-file-name-length-limit.html
Jika Anda membaca posting di atas, Anda akan melihat ada hal ke-5 yang dapat Anda yakini: Menemukan setidaknya satu pengguna komputer yang keras kepala!
sumber
Saya tidak bisa membuat file dengan nama + periode + ekstensi di WS 2012 Explorer lebih dari 224 karakter. Jangan tembak utusan itu!
Dalam CMD dari server yang sama saya tidak dapat membuat nama karakter lebih dari 235 :
File dengan nama karakter 224 yang dibuat di Explorer tidak dapat dibuka di Notepad ++ - hanya muncul dengan file baru.
sumber
The system cannot find the path specified.
tidak sama denganThe specified path, file name, or both are too long.
. Saya kira Anda memiliki kesalahan ketik atau sesuatu. Anda mendapatkan pesan itu jika Anda mencoba membuat file di jalur yang tidak ada atau jika Anda ingin pindah ke arah yang tidak ada.