|
Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » Вариант решения проблемы IIS FTP и символ "я" |
|
Вариант решения проблемы IIS FTP и символ "я"
|
Новый участник Сообщения: 14 |
Добрый день, уважаемые форумчане.
Все знают, эту проблему, что не возможно скачать файл с 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 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Как удалить папку "Моя музыка","Мои Картинки", "Мое видео"? | 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 |
|