3

次のコードでフォルダーの名前を変更しようとすると、例外が発生します。

Directory.Move(@"D:\MyOldFolderName", @"D:\MyNewFolderName");

例外:

System.IO.IOException was unhandled
  Message="Access to the path 'D:\\MyOldFolderName' is denied."
  Source="mscorlib"
  StackTrace:
     at System.IO.Directory.Move(String sourceDirName, String destDirName)
     ...

問題は、私のアプリケーションの別のクラスでまったく同じコードラインが機能することです。アプリケーションは、1 つの DLL のみで構成されます。

ここで何が起きてるの?何か案は?

より詳しい情報:

  • アプリケーションは、MVVM デザイン パターンを使用する WPF アプリケーションです。
  • フォルダーの名前変更が機能するクラスは ViewModel です。
  • フォルダーの名前変更が機能しないクラスはヘルパー クラスです (このメソッドは、フォルダーの名前を変更する前にデータベース関連の処理を行います)。
4

1 に答える 1

4

これはおそらく権利によるものではなく、コードのどこかでそれらのフォルダーからファイル/ストリームを開いているという事実によるものです...フォルダーを移動しようとする前にブレークポイントを置き、 Who Lock Meのようなツールでそのフォルダーを調べますまたは同様に、最初のクラスと2番目のクラスで違いがありますか...「失敗した」クラスでフォルダーを移動しようとする直前に、移動しているフォルダーがロックされていると予想されます(使用する)...

于 2011-01-29T16:50:05.677 に答える