0

アプリケーション (Windows 上で実行) への入力として、ファイルのリストを受け取りました。これらのファイルは、スクリプトを使用してデータベースから自動的に抽出されました。

一部の名前には特殊文字 (アクセントなど) が含まれているようで、これらの文字は「©」として表示されます。

これらのテキスト ファイル (約 900,000) の名前をプログラムで変更して、この文字を取り除くにはどうすればよいですか? ソースを変更することも、ファイルを再抽出することもできません。問題は、この文字が原因で、システムに関連する別のプログラムがファイルを受け入れないことです。

4

2 に答える 2

0

最終的に、入力ファイルを読み取り、タイトル内の特殊文字を検索する新しいスクリプトを作成しました。

それは確かに非常に簡単でした:

string filename = filename.Replace("©", "e");

'©'はファイル名に含まれているため、スクリプト(C#)はそれを認識し、それに応じて一致を置き換えることができます。このようにして、ファイル名を読み取り、特殊文字を変更するだけで、すべてのフォルダーとサブフォルダーをループできます。

貢献してくれてありがとう!

于 2011-12-01T10:34:45.873 に答える
0

unix コマンドを見てくださいrename。perl 正規表現を一連のファイルの名前に適用できます。この場合、次のようなものが必要になる場合があります。

$ rename 's/[^a-zA-Z0-9]//' *

debian では、renameコマンドはperlパッケージの一部です。CPAN でも利用できるはずです。

于 2011-11-30T16:03:28.033 に答える