Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как ужать длинный путь в короткий? / 8 сообщений из 8, страница 1 из 1
14.10.2010, 12:38
    #36899057
anvarfromkz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ужать длинный путь в короткий?
Например:

C:\Documents and Settings\User\Рабочий стол\1.mp3

Ужать в

C:\Docume~1\User\Рабочи~1\1.mp3

Заранее всех благодарю кто откликнется
...
Рейтинг: 0 / 0
14.10.2010, 12:41
    #36899068
anvarfromkz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ужать длинный путь в короткий?
anvarfromkz,


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:\ то нормально а если на рабочем столе или в документах не отправляет на фтп, думаю из-за длинных имен
...
Рейтинг: 0 / 0
14.10.2010, 12:56
    #36899113
anvarfromkz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ужать длинный путь в короткий?
anvarfromkz,

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

кажется вот так
...
Рейтинг: 0 / 0
14.10.2010, 13:24
    #36899218
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ужать длинный путь в короткий?
скорее всего причина не в длине пути, а в нем самом
если путь содержит пробел и т.п оберните его кавычками


Код: plaintext
Inet1.Execute , "PUT " & f & " """ & filext & """"
...
Рейтинг: 0 / 0
14.10.2010, 13:51
    #36899304
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ужать длинный путь в короткий?
anvarfromkz & "~1"
некорректный способ, там могут быть и другие цифры

а так - да, пусть с пробелами нужно брать в кавычки
...
Рейтинг: 0 / 0
14.10.2010, 14:46
    #36899496
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ужать длинный путь в короткий?
anvarfromkz,

Код: plaintext
1.
2.
3.
4.
5.
6.
Sub test()
  Dim fsoFile As File, fso As FileSystemObject
  Set fso = New FileSystemObject
  Set fsoFile = fso.GetFile("C:\Documents and Settings\User\Рабочий стол\1.mp3")
  Debug.Print fsoFile.ShortPath
End Sub

+ подключить Microsoft Scripting Runtime
...
Рейтинг: 0 / 0
14.10.2010, 15:25
    #36899613
Cursky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ужать длинный путь в короткий?
anvarfromkz,

Ещё вариант, используя WinAPI
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" ( _
    ByVal lpszLongPath As String, _
    ByVal lpszShortPath As String, _
    ByVal cchBuffer As Long) As Long

Sub TestShortName()
    Dim ShortName As String
    Dim slength As Long
    ShortName = Space( 255 )  ' создаем место в буфере для короткого имени файла
    slength = GetShortPathName("C:\Documents and Settings\All Users\Documents\desktop.ini", ShortName,  255 )
    ShortName = Left(ShortName, slength)  ' извлекаем строку из буфера
    Debug.Print "Короткое имя: "; ShortName
End Sub
...
Рейтинг: 0 / 0
14.10.2010, 17:55
    #36900073
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как ужать длинный путь в короткий?
anvarfromkz
Код: plaintext
Inet1.Execute , "PUT  ""c:\demo.exe" & "demo.exe"

Листинг программы если файл находиться на C:\ или D:\ то нормально а если на рабочем столе или в документах не отправляет на фтп, думаю из-за длинных именНеправильно думаешь. У тебя кавычки неверно расставлены, только и всего. Тщательнее следи за ними.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как ужать длинный путь в короткий? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]