Jump to content

Именуването на файловете в компютъра


chino_sz

Препоръчан пост

Здравейте, надявам се да съм уцелил точния раздел за темичката ми. От доста време насам все се чудя над един въпрос, на който така и не мога да намеря отговора никъде.Интересно ми е защо при по-старите файлове, били те музикални (особено) ,текстови и т.н. няма оставено място между името на изпълните, номера на трака и името на песента а вместо празно място има долна черта ( _ ) .Имам някакви мудни спомени че това било заради самата операционна система, и по-точно заради прочитането на самите файлове, така ставало по-лесно. Не знам до колко е верен споменът ми или самата теория.Знам за това че файловете не е хубаво да се изписват на кирилица, поради същата причина от предната теория. Нека някой по-запознат с програмирането или в която и да е друга сфера на мирозданието (месар, багерист, рибар, манекенка или жена шофьор :D) Да ми обясни дали моят толкова отдавнашен въпрос има смисъл все още да занимава моето съзнание или да го пращам в небитието.

  Благодаря предварително на отзовалите се мои събратя. Имате по една бира от мен (ако сте от Стара Загора) за всяка полезна информация по този въпрос. :)

Link to comment
Сподели другаде

На практика, няма никакво значение за скоростта или верността на прочетените данни, от това, дали ще има долно тире, тире или празно пространство или какъвто и да било друг символ в името на файла. Всички символи се представят като част от например ASCII таблицата, тоест разликата между две съседни букви или символа в представянето в паметта на компютъра няма, тоест броят битове е един и същ, а от там следва, че и скоростта ще е идентична, в случая на стандартната ASCII таблица "дължината" на един символ в паметта на компютъра е 7 (8) бита. Но и да приемем, че един символ би се описал с 8 бита, а друг с 16 бита (съвсем хипотетично), тази обработка дори на най-старите микроконтролери отпреди 30 години е толкова бърза, че се приема за мигновена, да не говорим за съвременните системи.

 

Да кажем, че имаме няколко абсолютно идентични файла с абсолютно едни и същи данни вътре (за по-лесно си представяме, че е чист текст, т.нар. plaintext), като единствената разлика между тях е в имената им, тоест единия е изцяло на кирилица, другият изцяло на латиница, третия и четвъртият са съответно със заглавия на кирилица и латиница, но с долни тирета, петите и шестите същите като предишните, но с интервали в имената, а последните два са идентични с последните, но са с нормални тирета. То при този случай няма да има абсолютно никаква разлика при четенето, като не взимаме в предвид някакви минимални разлики, които могат да се получат от странични неща, които могат да повлияят на изпълнението на програмата. Отново подчертавам, че файловете са с идентично съдържание.

 

Специално при някои файлове има значение дали самите данни са записани във файла без грешки, но това не е обект на текущото коментиране и зависи от типа на файла.

 

Не съм сигурен, защо точно е прието да се слага долно тире в повечето файлове, но предполагам, че е заради по-лесното четене на името на файла от хората, за компютъра е без значение и обработката на един единствен символ става мигновено.

Поради същата причина е по-масово именуването да става на латиница, защото на различните операционни системи с различни кодировки, може да излизат т.нар. "маймунски" символи, което не е приятно.

 

Сега нямам време да спретвам опитна постановка, за да тествам горните твърдения, но съм сигурен, че разлика, както при Windows, така и при Linux няма да има.

 

П.С. Именуването на файлове с интервали в имената не се предпочита, заради Linux/Unix операционните системи, тъй като най-просто обяснение е, че ако имаме файл с интервали в името, то той не може да бъде достъпен по традиционния начин през терминал например с vi името на файла.txt, защото все едно имаме няколко файла с това име. Заради това се налага при четенето на такива файлове под Линукс, да се приложи малък трик с името на файла.

Link to comment
Сподели другаде

URL-лите не обичат интервали, това на кратко е причината. При стари браузери можеш да имаш много сериозни проблеми, ако URL-а включва текст с интервали, а несъмнено повечето изтегляния изискват заявка да се подаде към URL-а на файла, в който се включва и името му.
Link to comment
Сподели другаде

При URL-ите, където има интервал се попълва %20 без да има какъвто и да било проблем. Проверих го с пуснат nginx и със статична страница с IE6, едва ли някой би използвал по-стара версия на браузър!

Link to comment
Сподели другаде

При URL-ите, където има интервал се попълва без да има какъвто и да било проблем. Проверено е на IE6, едва ли някой би използвал по-стара версия на браузър!

Това е полуистина. Първо, че интервалите не могат да се пишат директно, а трябва да се прекодват, второ че е много по-трудно да се управлява сайт с подобно съдържание, трето - наслагването на подобни прекодвания води след себе си нежелани грешки и е напълно възможно в някои случаи вместо да достъпиш желаното от теб съдържание да получиш "Page not found". Отгоре на всичко в команден ред се работи много по-трудно с имена с интервали. И за да си подкрепя думите Spaces in Filenames and Why You Should Avoid Them on the Web

Освен всичко това е много по-трудно да напишеш адреса до дадено съдържание, отколкото ако имаме използвана долна черта.

А иначе интервалът си е знак като всеки един друг, макар и празен и е без особено значение откъм производителност какъв точно знак ще бъде.

Както виждаш, аз не работя с догадки, а давам конкретни факти - как и защо.

Link to comment
Сподели другаде

А някъде да съм написал, че могат да се пишат директно, все едно пишеш в Notepad?!

Естествено, че трябва да се прекодират, ако не Ви е ясно защо, прочетете например RFC 1738 и RFC 3986, или отново говоря празни приказки?! 

Точно това бях написал-че проблемите с имената в команден ред са достатъчно големи, за да се избягва подобно именуване на файлове. Или Вие четете през ред и избирателно?

Работата ми се състои почти изцяло в команден ред с използване на vi/vim/emacs/nano, така че предполагам, че тези неща ги знам все пак?!

И аз не работя с догадки, или трябва отново да пусна уеб сървър, да направя screenshot, за да Ви докажа, че тези неща, които пиша са истина?!

Прочетете в по-горните RFC-та за GET заявките и през какви "кодировки" се преминава, аз урокът си съм го научил отдавна!

Link to comment
Сподели другаде

Работата ми се състои почти изцяло в команден ред с използване на vi/vim/emacs/nano, така че предполагам, че тези неща ги знам все пак?!

И аз не работя с догадки, или трябва отново да пусна уеб сървър, да направя screenshot, за да Ви докажа, че тези неща, които пиша са истина?!

Проблемите в командният ред са досадни, но преодолими. Основната причина да не се използват шпации, ами долни черти е именно, че е възможно потенциално да възникнат проблеми и по-трудно се управлява интернет сайт от подобен тип. Само ако погледнете - в повечето форуми адресите не са със шпации, ами основно с тирета. vBulletin, IPB и т.н са примери за това. Дали според Вас проблемът е, че администраторите на форумите, които в повечето случаи нямат абсолютно никакъв конзолен достъп към сървъра на хостинга не могат да си управляват съдържанието през команден ред? Не е случайно, че шпациите и специалните знаци се избягват. Радвам се, че ползваte vi/nano. Аз пък се намирам в 21 век и работя с графични среди. Конзолата е полезна, но графичните среди понякога са по-мързеливо решение.

Темата обаче нито е за догадки, нито пък за мерене на...мнения... Абсурдно е да говорим, че името по-лесно се чело, като имало долно тире, вместо шпация - напротив, по-трудно се чете. Определено не се именуват файловете с долни тирета само заради конзолата. Обикновено тези, които пишат сайтовете не се занимават с конзолната част, нито администрират сървърите. В интернет пък с едно търсене ще излязат десетки примери защо е по-добре да се ползва долна черта, а не шпация и повечето нямат нищо общо с конзолният достъп на файла.

Просто употребата им е свързана с повече тънкости, доработване и евентуални проблеми.

Link to comment
Сподели другаде

Благодаря ви за информацията.Ако някога по някаква причина имате идване или минаване през Стара Загора, драснете ми на лично за да оползотворим по една бира. :)

Link to comment
Сподели другаде

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гост
Отговори на тази тема

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   Не можете да качите директно снимка. Качете или добавете изображението от линк (URL)

Loading...
×
×
  • Създай ново...