これらの 2 行と、部分文字列でルートを切り取る理由が理解できません。
root=AppDomain.CurrentDomain.BaseDirectory;
C.FileName = root.Substring(0, root.Length - 10) + "etat_selection_formula.rpt";
これらの 2 行と、部分文字列でルートを切り取る理由が理解できません。
root=AppDomain.CurrentDomain.BaseDirectory;
C.FileName = root.Substring(0, root.Length - 10) + "etat_selection_formula.rpt";
ファイル パスの操作には、文字列を直接操作するのではなく、System.IO.Path クラスを使用することを強く検討する必要があります。UNC パスのセマンティクスを認識しており、元の (明らかに近視眼的な) 実装に縛られることはありません。パスの最初の部分が 10 文字に満たない場合はどうなりますか? 誰かがフォルダを移動または名前変更しただけで、アプリケーション全体が壊れます。
MSDN ドキュメント (使用例を含む): http://msdn.microsoft.com/en-us/library/system.io.path.aspx
通常は行う必要はありません。
誰かがそれを使用して、別のレポート パスまたはページ名を置き換えています。
私の意見では、これは悪いコードであり、必要に応じてベース パスを定数に格納する必要があります。そうすれば、はるかに読みやすくなります。
root=AppDomain.CurrentDomain.BaseDirectory;
C.FileName = root.Substring(0, root.Length - 10) + "etat_selection_formula.rpt";
最初の行は、アプリが実行されているディレクトリを取得するだけです。2 行目では、そこから最後の 10 文字を削除し、レポートの名前 ("etat_...") を追加します。
なぜあなたがこれを行うのか...あなたが知らないのであれば、私もわかりません。最良の推測: 1 つのディレクトリを (固定パスで) 取得し、標準レポートを追加します。
もしそうなら:悪い習慣 - あなたはこれを再考する必要があります.