![]() |
|
Модераторы: Akina |
![]()
|
|
| anvarfromkz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 14.10.2010 Репутация: нет Всего: нет |
Как ужать длинный путь в короткий?
Например: C:\Documents and Settings\User\Рабочий стол\1.mp3 Ужать в C:\Docume~1\User\Рабочи~1\1.mp3 Заранее всех благодарю кто откликнется Inet1.AccessType = icUseDefault 'Protocol to be used Inet1.Protocol = icFTP 'Remote host name Inet1.RemoteHost = Text1(0) 'Server port number, usually its 21 Inet1.RemotePort = "21" 'Server Username Inet1.UserName = Text1(1) 'Server password Inet1.Password = Text1(2) 'Server session timeout 'Inet1.RequestTimeout = "60" For i = 1 To Len(f) If Mid(f, i, 1) = "\" Then filext = Mid(f, i + 1, Len(f) - i) Next i 'Uploading file to server 'PUT method is a command in FTP to upload file to a server Inet1.Execute , "PUT " & f & " " & filext 'Inet1.Execute , "PUT ""c:\demo.exe" & "demo.exe" Листинг программы если файл находиться на C:\ или D:\ то нормально а если на рабочем столе или в документах не отправляет на фтп, думаю из-за длинных имен |
|||
|
||||
| anvarfromkz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 14.10.2010 Репутация: нет Всего: нет |
k = 1 For i = 1 To Len(Text1.Text) If Mid(Text1.Text, i, 1) = "\" Then slovo = Mid(Text1.Text, k, i - k): k = i + 1 If Len(slovo) > 8 Then slovo = Mid(slovo, 1, 6) & "~1" t = t & slovo & "\" End If Next i Text2.Text = t кажется вот так |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Бред... Добавлено через 2 минуты и 27 секунд Вопрос первый - узнать вообще, возможно ли это. Ибо на vFAT короткие пути запросто могут быть отключены. И лишь убедившись, что это возможно, есть смысл пытаться преобразовать - причём для этого явно придётся привлекать API. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| anvarfromkz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 14.10.2010 Репутация: нет Всего: нет |
For i = 1 To Len(f)
If Mid(f, i, 1) = "\" Then fileext = Mid(f, i + 1, Len(f) - i) Next i k = 1 For i = 1 To Len(f) If Mid(f, i, 1) = "\" Then slovo = Mid(f, k, i - k): k = i + 1 If Len(slovo) > 8 Then slovo = Mid(slovo, 1, 6) & "~1" t = t & slovo & "\" End If Next i puti = t & Trim(fileext) вот так сделал никак не хочет отправлять На делфи есть а на VB нету uses Windows, SysUtils; function GetShortName(sLongName: string): string; var sShortName: string; nShortNameLen: Integer; begin SetLength(sShortName, MAX_PATH); nShortNameLen := GetShortPathName(PChar(sLongName), PChar(sShortName), MAX_PATH - 1); if (0 = nShortNameLen) then begin // handle errors... end; SetLength(sShortName, nShortNameLen); Result := sShortName; end; // Example: procedure TForm1.Button1Click(Sender: TObject); begin Caption := GetShortName('C:\Program Files\Delphi6\Lib\test.cnt'); // --> C:\PROGRA~1\Delphi6\Lib\test.cnt end; Это сообщение отредактировал(а) anvarfromkz - 14.10.2010, 12:15 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
У меня например E:\Documents and Settings (у меня системный и загрузочный том E:) - это E:\Docume~4 -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| anvarfromkz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 14.10.2010 Репутация: нет Всего: нет |
СПАСИБО очередной раз выручили
все просто shortname = Space(255) ' make room in the buffer for the short filename slength = GetShortPathName(f, shortname, 255) shortname = Left(shortname, slength) ' extract returned string from buffer puti = shortname |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |