File.Exsistsメソッドで、"C:\\te st\\file .txt" のような半角・全角スペース入りファイルパスがあるとFalseを返す問題。SequenceEqualを使ってあっさり解決。
同名のメソッドだとアレなんで自作クラスとして実装
public class Remake_FileExsists
{
bool isEqual;public bool FileExsists(string convertFileName)
{
var getFilesList = getFileNames(convertFileName);foreach (string targetList in getFilesList)
{
isEqual = targetList.SequenceEqual(convertFileName);if (isEqual)
return isEqual;
}
return isEqual;
}string getFileNames(string targetForder)
{
string target = Path.GetDirectoryName(targetForder);string destinationFiles = Directory.GetFiles(target);
return destinationFiles;
}}
一応こんな感じで。単純なファイルの存在チェックはこれで何とかなる。
実際に読み書きを行う時は @"""" + 任意のパス + @"""" と記述してる。これで半角・全角問わずスペース入りのパス名を扱える。
最初はバイナリ変換でやろうとして上手くいかなかったです。
pythonスクリプトをDll化するなども考えてアホみたいに時間食ってた(;^ω^)
やっぱりC#だけで完結させた方が早いみたい。