I'm getting really inconsistent results from the filtering feature.
I want to update all of the *.html and *.php files throughout the directory tree of my website. I want SmartFTP to traverse all of the subdirectories and transfer all of those files, overwriting any that already exist. I don't want it to transfer any other type of file (e.g. *.css).
I assume that is possible with the filters, or else I don't understand what the filters do. Is that possible? If not, what do the filters do?
I've performed some tests using a greatly simplified version of my actual file tree:
smartftp_filters_tree.zip
Obviously if there were just one *.html file that I needed to update, I could just manually transfer and overwrite that one file. But I have many files of different types throughout many subdirectories, so I need an automated way to transfer and overwrite just certain files without disturbing others.
For this simplified test the goal is to transfer the "docroot" folder and have just docroot/inside/ui/standard/example.html overwritten, without having to tell SmartFTP what to do with each individual file. Although this is a greatly simplified version of my actual problem, I've been unable to get SmartFTP to do that.
I performed the tests by doing the following with the above file tree:
* I disabled filters and opened a remote browser.
* I uploaded "docroot" to the FTP server.
* I changed all of the local files, but not the directory stucture.
* I enabled filters, closed the remote browser, and reopened it.
* I made "home" my current directory in both my local and remote browsers, and then dragged "docroot" from local to remote.
* In all cases the first prompt I received was the Confirm Folder Replace dialog, for which I selected [Merge + Do this for all conflicts].
Here are some of the things I observed:
*** 1 ***
With the following filters:
WildChar / *.html / File (Name)
WildChar / * / Folder (Name)
When transferring "docroot", SmartFTP encounters docroot/inside/example.css and prompts whether to Copy and Replace, Don't copy, etc. the file, despite the fact that no *.css file should be transferred at all according to the filters.
Choosing [Don't copy + Do this for all conflicts] is not an option, because then the *.html files that are intended to be overwritten won't be.
Choosing [Copy and Replace + Do this for all conflicts] for docroot/inside/example.css DOES overwrite the file, then continues to overwrite subsequent *.html files, but not subsequent *.css files.
Choosing [Copy and Replace] individually for each *.css file encountered DOES overwrite each file.
*** 2 ***
With the following filters:
WildChar / *.html / File (Name)
When transferring "docroot", SmartFTP works its way into the subdirectory structure until it encounters docroot/inside/example.css, then displays the Copy File dialog (Copy and Replace, Don't copy, etc.) even though no *.css file should be transferred at all according to the filters.
Choosing [Copy and Replace + Do this for all conflicts] for docroot/inside/example.css DOES overwrite the file, then does not overwrite any files deeper in the subdirectory structure, even the *.html files included by the filter.
If docroot/inside/example.css is removed and the test is repeated, SmartFTP descends to docroot/inside/ui/standard/example.css and then displays the Copy File dialog. Once again if [Copy and Replace + Do this for all conflicts] is chosen, SmartFTP DOES overwrite the file and then will the overwrite the example.html file in the same directory.
It seems to me that SmartFTP displaying the Copy File dialog for the first (or any) *.css file and forcing it to be overwritten to get any of the subsequent, intended files to be transferred and overwritten is a definite problem. Perhaps the problem is limited in scope to that. It's hard to say though, because I've been performing these tests with a much simpler file tree than my real one. If that problem weren't happening and I then tried the transfer with my real, more complex file tree it's possible that other problems would then manifest.