23. April 2009
IIS , FTP , Extensibility
As I pointed out in my recent blog post that was titled "FTP 7.5 and WebDAV 7.5 have been released", one of the great new features of the FTP 7.5 service is extensibility. In that blog post I mentioned that I wrote the following walkthroughs to help developers get started writing providers for the FTP 7.5 service, and these walkthroughs are all available on Microsoft's learn.iis.net Web site:
- For Managed Code Developers:
- For Native Code Developers:
We have also recently published the FTP Service Extensibility Reference on Microsoft's MSDN Web site, and here is a list of all the reference topics that we have written for FTP 7.5 service extensibility:
I hope this helps!
Note: This blog was originally posted at http://blogs.msdn.com/robert_mcmurray/
Using this FrontPage VBA Macro
This FrontPage VBA Macro is designed to fix potential filename problems by:
- Converting all filenames to lowercase.
- Converting all non-alphanumeric characters to underscore characters.
- Removing duplicate underscore characters.
FrontPage VBA Macro Example Code
Public Sub FixFilenames()
Dim objWebFile As WebFile
Dim objWebFolder As WebFolder
Dim strOldFile As String
Dim strNewFile As String
If Len(Application.ActiveWeb.Title) = 0 Then
MsgBox "A web must be open." & vbCrLf & vbCrLf & "Aborting.", vbCritical
For Each objWebFolder In Application.ActiveWeb.AllFolders
For Each objWebFile In objWebFolder.Files
strOldFile = objWebFile.Name
strNewFile = FixName(strOldFile)
If strNewFile <> strOldFile Then
objWebFile.Move objWebFolder.Url & "/" & strNewFile & _
".tmp.xyz." & objWebFile.Extension, True, False
objWebFile.Move objWebFolder.Url & "/" & strNewFile, True, False
Private Function FixName(ByVal tmpOldName As String) As String
Dim intChar As Integer
Dim strChar As String
Dim tmpNewName As String
Const strValid = "1234567890_-.abcdefghijklmnopqrstuvwxyz"
tmpOldName = LCase(tmpOldName)
For intChar = 1 To Len(tmpOldName)
strChar = Mid(tmpOldName, intChar, 1)
If InStr(strValid, strChar) Then
tmpNewName = tmpNewName & strChar
tmpNewName = tmpNewName & "_"
Do While InStr(tmpNewName, "__")
tmpNewName = Replace(tmpNewName, "__", "_")
Do While InStr(tmpNewName, "_-_")
tmpNewName = Replace(tmpNewName, "_-_", "_")
FixName = tmpNewName