Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как преобразовать длинное имя файла в короткое?

40K
14 июля 2009 года
MixerLosev
26 / / 13.07.2009
Непонятно почему не работает.
Вот код:
------------------------------------------------------------------------
class Utilites
{
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern int GetShortPathName(
[MarshalAs(UnmanagedType.LPTStr)]
string path,
[MarshalAs(UnmanagedType.LPTStr)]
StringBuilder shortPath,
int shortPathLength
);
}

class Programm
{
[STAThread]
static void Main(string[] args)
{

StringBuilder shortPath = new StringBuilder(255);
Utilites.GetShortPathName(@"F:\Documents and Settings \PVA\My Documents\Книга1.xls", shortPath, shortPath.Capacity);
Console.WriteLine(shortPath.ToString());

}
}
------------------------------------------------------------------------
Возвращает пустую строку.
Где-то вычитал, что функция GetShortPathName из kernel32.dll может работать только файловой системой FAT.
Кто-нибудьт знает как получить короткое имя файла из длинного в NTFS?
14
14 июля 2009 года
Phodopus
3.3K / / 19.06.2008
За-чем?
40K
14 июля 2009 года
MixerLosev
26 / / 13.07.2009
Есть прога, которая формирует командную строку и выполняет ее.
Получает после этого отклик, который содержить короткие имена файлов.
Нужно сравнивать отклик с эталонным значением.
Соотвественно эталонное значение также содержит короткие имена файлов.
Эталонное значение нужно сформировать программно.
14
14 июля 2009 года
Phodopus
3.3K / / 19.06.2008
На NTFS есть опция "не задействовать короткие имена файлов" => если она включена, та программа работать не будет (полагаю). Но если та программа корректно отрабатывает то вам также удастся получить короткие имена с помощью GetShortPathName()
Цитата:

Где-то вычитал, что функция GetShortPathName из kernel32.dll может работать только файловой системой FAT


лучше всего читать об API в MSDN. Я посмотрел, не увидел там такого упоминания.
Ну и напоследок: а вы попробовали?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог