Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » Вариант решения проблемы IIS FTP и символ "я"

Ответить
Настройки темы
Вариант решения проблемы IIS FTP и символ "я"

Новый участник


Сообщения: 14
Благодарности: 3

Профиль | Отправить PM | Цитировать


Добрый день, уважаемые форумчане.
Все знают, эту проблему, что не возможно скачать файл с FTP если в его имени (или имени папки) содержится буква "я". Для протокола этот символ (его код) говорит о конце передачи. При этом на символ "Я" такой реакции нет. План зрел не долго, захотел в ручную переименовать все файлы во всех FTP поддиректориях... Но организовав поиск по маске *я, понял, что переименовать 2500 файлов не смогу. Тогда подошел к проблеме иначе, а именно написать VB скрипт, который сам пройдется по подпапкам и заменит символ "я" на "Я". Вот этим и занялся, это и помогло! Кому такой вариант решения проблемы приемлем, то добро пожаловать и прошу, пользуйтесь!

'=================================================================
'Скрипт, решающий проблемы, связанные с IIS FTP и буквой "я" |
'скрипт проходит по всем поддиректориям от указанной директории |
'и заменяет букву "я" на "Я" во всех именах файлов и дерикториях. |
'=================================================================


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:\Test_Folder" 'Корневая директория FTP сервера
Call RunSubFolders (RootFTPFolder)


У меня переименование 2500 файлов и папок заняло 5 минут!
Как дальнейшее решние, что бы не объяснять пользователям, что с "Я" создаватьимена файлов не стоит, я просто запланировал выполнение этого скрипта 1 раз в сутки, ночью! Всем удачи и спасибо за внимание.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:45, 16-12-2008

 


Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » Вариант решения проблемы IIS FTP и символ "я"

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Как удалить папку "Моя музыка","Мои Картинки", "Мое видео"? verdix Microsoft Windows 2000/XP 3 03-10-2009 23:46
Debian/Ubuntu - [решено] Пропали кнопки "свернуть","закрыть","во весь екран" в папках Alex.sys Общий по Linux 5 02-04-2009 11:13
Службы - Vista"Не удается отобразить решение" при нахождении решения проблемы в сети Ser1Mel Microsoft Windows Vista 14 10-04-2008 01:06
[решено] Вариант решения конфликта IE7 и RunOnceEx Kirk Hammett Автоматическая установка Windows 2000/XP/2003 5 17-04-2007 17:40
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29




 
Переход