Алексей1153++,не все так просто) насчет того что оно "одно" - это не есть правильно)
например короткое имя файла можно изменить не меняя длинного имени файла:
ZwSetInformationFile() с параметром FileInformationClass == FileShortNameInformation
а для изменения длинного имени можно сделать вызов той же функции, но с параметром FileInformationClass == FileRenameInformation
тут собственная специфика) по умолчанию оно выставляется так как ты написал) да и то... что будет если файла два?)
"имя длинное.одна штука_первый"
"имя длинное.одна штука_второй"
кто из них станет имя_дл~1.одн а кто имя_дл~2.одн ? - зависит от очередности создания. и может изменится при другой очередности копирования в другую папку.... не все так просто)
GG_shara, по поводу доп-атрибутов - возможно один из перечисленных ранее способов использует FILE_EA_INFORMATION
http://msdn.microsoft.com/en-us/library/dd852082.aspx но скорее всего это тоже какой нибудь "системный" поток NTFS...
и к сожалению про короткие имена тоже оказалось не лучшим полем для наших целей:
http://msdn.microsoft.com/en-us/library/ms793819.aspxThe short name for a file is the short (8.3) name for the final component of the file name. Because it is generated when the file is opened, the short name is not available for an unopened file object, and it is not available in the create dispatch ("pre-create") path. It is also not available for NTFS stream file objects. Not all open files have short file names. For example, on NTFS partitions where short file name generation has been disabled, no files have short file names.
я и забыл что формирование имен 8.3 можно через настройки отключать) да и написано как-то подозрительно.... противоречит далее написанному.
и к тому же
http://msdn.microsoft.com/en-us/library/cc308453.aspxFileRenameInformation, FileShortNameInformation, and FileLinkInformation
This applies when the following operations are being performed on a file or stream:
1 The file or stream is being renamed
2 A short name is being set for the file
3 A hard link is being created for the file