На главную :: DiamondSteel-ArtНаписать письмо...Карта сайтаПоиск по сайту

На главную :: DiamondSteel-Art

Прежде чем загрузить файл на сервер, сосчитай до ста.
Прежде чем стереть его - до тысячи.

Полезное

   Назад 

Борьба с IIS FTP и буквой «я»



Согласно RFC 959 протокол FTP не понимает русскую букву «я». Происходит это потому, что в кодировке cp1251 эта буква кодируется как «FF». А это окончание передачи данных. Таким образом мы получаем особенность не позволяющую скачивать с FTP файлы и директории содержащие букву «я».

Наиболее простой выход не использовать маленькую букву «я».

Это легко реализовать, когда выкладываете данные на FTP только Вы. И очень трудно, когда в этот процесс вовлечена «секретарша»…


Я борюсь с этим следующим скриптом:



'*******************************************'
'                                           '
' Скрипт предназначен для переименовывания  '
' всех папок и файлов содержащих букву <я>  '
'                                           '
' Требуется для решения проблеммы IIS FTP   '
' заменяет букву "я" на "Я"                 '
'                                           '
' (c) DiamondSteel                          '
'                                           '
'*******************************************'

Sub RunSubFolders (FolderInto)
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set Folder = FSO.GetFolder(FolderInto)

    For Each iFile in Folder.Files
        NameFile = Mid(iFile, InStrRev(iFile,"\")+1)
        If Detect_ya(NameFile) Then
            On Error Resume Next
            FSO.MoveFile iFile, Mid(iFile,1,InStrRev(iFile,"\")) + convert_ya(NameFile)
        End If
    Next

    On Error Resume Next 

    For Each iSubFolder in Folder.SubFolders
        NameFolder = Mid(iSubFolder, InStrRev(iSubFolder,"\")+1)
        If Detect_ya(NameFolder) Then
            On Error Resume Next
            FSO.MoveFolder iSUbFolder, Mid(iSubFolder,1,InStrRev(iSubFolder,"\")) + convert_ya(NameFolder)
        End If
        RunSubFolders (iSUbFolder)
    Next
End Sub

function convert_ya(str_in)
    str_out = Replace(str_in,"я","Я")
    convert_ya = str_out
End function

function Detect_ya(Str_in)
    If (InStr(Str_in,"я")<>0) then
        Detect_ya = True
    else
        Detect_ya = False
    End If
End Function

' Укажите директорию которую нужно просканировать.
RootFTPFolder = "C:\wwwroot\ftp"

Call RunSubFolders (RootFTPFolder)

'*******************************************'


Любую фотографию представленную на этом сайте можно купить, как в качестве готового отпечатка, так и в электронном виде, для последующей переработки. Просто свяжитесь со мной.

Система Orphus Яндекс.Метрика

  © DiamondSteel-Art  [ pgt: 0.009 sec. ]      Использование материалов сайта разрешено только с письменного разрешения автора