C++ Builder5を使用しております。下の部分でルートディレクトリを設定しております。フォルダがなかったら作成されていることはわかりますが、あまり詳しくわかりません。できれば、ご教授お願いいたします。
「if( value.SubString(value.Length(), 1) == "\\" )」以下からよくわかりません。
void __fastcall TFTCtrlServer::SetRootDirectory(AnsiString value)
{
if( FRootDirectory != value ){
if( !ComponentState.Contains(csLoading) && Active )
throw Exception("実行中に変更できません");
if( !DirectoryExists(value) )
if( CreateFolders(value) ){
//throw Exception("そのようなフォルダはない");
if( value.SubString(value.Length(), 1) == "\\" )
value.Delete(value.Length(),1);
}else throw Exception("フォルダの作成に失敗しました");
FRootDirectory = value;
}
}
「フォルダがないときのフォルダ作成」が解らないのでしょうか、それとも、if ... =="\\"のところが解らないのでしょうか。
前者であれば、ForceDirectories関数で済みますし、後者は、ディレクトリの指定に"C:\TEST\"などのとき、最期の"\"を削除するものだと思います。
# ただ、この削除は"C:\"の時に"C:"にされて困るかも
回答ありがとうございます。
後者であります。
なるほど、ただ単に\を消しているだけだったんですね。
ちょっともう1つ気になったことがありますが、別のスレッドにさせていただきます。
ツイート | ![]() |