You gotta love charity, right? I know it’s my favourite. Makes me feel all warm and fuzzy inside. You know that feeling? I get to feel, deep down, that I’ve helped some miserable wretch. These people certainly can’t help themselves, so it is up to me to wander in and solve their problems for them! I’m better than them, and I am graciously spreading my goodness, not to necessarily elevate anybody, but to alleviate suffering. Temporarily, of course, because eliminating the problem so that nobody needs any kind of condescending “help” would mean sacrificing some of my own privileges. I could never do that, because then how would I know that I’m better than other people?

One above, one below. The very image of giving to a homeless person belies the hierarchy the act places each into.
That warm and fuzzy feeling that comes from being charitable appears to be unique among traditionally moral behaviours. Telling the truth, for instance, kinda sucks. It sucks when it’s a moral action, that is. If someone asks you about the weather, and you answer truthfully, it’s not really a moral action. If someone were to lie in that situation, it would invoke concerns of pathology. Telling the truth is moral when it generates personal consequences. You tell the truth when you leave a note with your information on the windshield of a parked car you dinged. You tell the truth when you slip after a few years of sobriety and call your parents to admit your transgression. Kant’s killer at the door is a test of morality because it calls into question one’s commitment to their own values.
It is not just honesty. Loyalty really only matters when temptation is present. Temperance only counts when anger is deserved. Forgiveness only makes sense when there is something to forgive. Jesus told his followers to turn the other cheek only after the first had been struck. The entire point of morality is to regulate relationships and situations that might otherwise escalate wildly. It’s not to feel great about how swell of a human being you might be.

Moral temperance would be recognizing the context that leads to violence, but choosing an alternative. Even if the violence would end up being hilarious.
Which brings us back to charity. Giving a few dollars to a local non-profit is about the equivalent of telling someone that it’s raining when it’s raining. In short, it is not a moral action. What would be the charitable equivalent to telling your girlfriend the truth about how her butt looks in those pants?
There is the Peter Singer option, to start. Singer invites us to imagine having just bought a $100 pair of shoes. We’re walking home in our new shoes, and we see a small child struggling to stay afloat in a pond. The child goes under the water. What do we do? Singer suggests that there are few people who would even hesitate to jump into the pond to rescue the child, the status of their shoes be damned. If most people would save a child, despite the loss of their purchase, then why is it that the status of our charity is so pitiable? Singer wants charity to take on a much more extreme role, where individuals donate all their income minus enough for their own basic needs, and argues that this is our basic human drive anyway based on how we would approach these life or death situations if we were ever faced with them in person.

Do you offer a receipt for tax purposes?
Redistribution of wealth is certainly one way to address poverty, but it is not the only way. Another might be to restructure the current system that stratifies people into class hierarchies into one that allows people to take care of themselves (such as through communal ownership of property), which eliminates the need for charity entirely. If everyone has their basic needs met, then poverty will have become inconsequential.
There are probably more moral ways to address poverty, but charity certainly isn’t one of them. From my arguments, you can join the fight to implement social policies that will help the working class, or you can start a revolution. Neither of them will give you any warm fuzzies, in fact, they’ll require great sacrifice, but at least you’ll be behaving ethically.
I used to care about those less fortunate than myself until I realized it was beyond my power to make a real difference in their lives. People have problems for reasons. If you can’t fix those reasons, you can’t fix their problems, and charity is a farce.
On rare occasions, I’ve felt like I actually did help someone. But you have to be selective. And you have to get to know people. No writing checks to big charity. No soup kitchen nonsense. No change to beggars who are probably drug addicts.
I’ve had misfortune in my own life, and discovered that no one could help me, and charitable efforts only made me feel small. But sometimes I found a way to solve my own problems when no one else could. Most of my misfortune was caused by other people. Most of my solutions came from me. But it led me to have compassion for the down and out and the oppressed in particular. I tried to help them. I discovered I couldn’t help them. Compassion without efficacy is pity, and pity demoralizes both the pitier and the pitied.
To the oppressed and downtrodden: no one can free you but yourself. A savior is just another master. Until you free yourself, you will never be truly free.