Filters aren't working

I'm having a problem with filters in SmartFTP 4.0.1072.0 on Windows XP Home SP3. Neither include nor exclude filters are working at all. With either of the following filter configurations, SmartFTP still happily transfers "example.css":


Options = Enable



Filter List = Use Favorite's Settings



Type = Include



WildChar / *.html / File (Name)



WildChar / *.php / File (Name)


Image

OR



Options = Enable



Filter List = Use Favorite's Settings



Type = Exclude



WildChar / *.css / File (Name)



Am I missing something glaringly obvious here?

Filters are only applied to folders that are already in the transfer queue. If you manually add a test.css file, the filters do not apply.

Can you please elaborate on what you mean by "already in the transfer queue"? Or, can you please just explain the steps I need to take to transfer files and have the filters applied?

Is there documentation somewhere explaining the role of the transfer queue and how to use it?

If you select a file called bla.css in the remote browser and drag it over to the local browser it will be added to the transfer queue and no filters are applied.

If you download a folder and it contains a file bla.css then this file will get filtered.

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.

Yeah, but that would be an additional hassle on top of the considerable amount of time I've already spent debugging it. Would you look into it please? If it's a bug (which it seems like to me) and a newer release fixes it, then I'll upgrade. If it's not a bug, then I must not understand how the feature is supposed to work and I need to be pointed to some documentation or have an explanation of how it works, please.

I'm sorry but I do not understand your problem. Please try it with the latest version, it corrects some bugs that might be related to your findings.

I installed the beta.

I repeated test #1.

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.

I didn't proceed any farther, because as far as I can see, that's a bug right there.

I forgot to mention before, the FTP server is ProFTPD 1.3.2c.

This is by design and it's exactly what I tried to explain before. Filters are only applied to folders that are in the transfer queue. If you manually transfer a bla.css file the filters do not apply and you are prompted if you want to transfer it. If you select skip in the file exist dialog then the file will be skipped, if you select copy then the file will be copied. If you select "Use Automatic Rules" the file will still be transferred. However if you transfer a folder and then select "Use Automatic Rules" in the folder exist dialog, the .css files inside this folder will be skipped.

What can be discussed is whether the filters should be applied to files when you select "Use Automatic Rules" in the file exist dialog.

BUMP