1

私のウェブサイトプロジェクトで。コードでフォルダーの名前を変更または削除する必要があります。

そのすべてを実行できる場合もありますが、エラーで実行できない場合もあります。Access to the path is denied

Googleで解決策を見つけてみてください。たぶん、2つの理由があります:

  1. そのフォルダの許可
  2. 開いたままになっているサブフォルダーまたはそのフォルダー内のファイル。

確認してみてください:

  1. [フォルダ] -> [プロパティ] -> [セキュリティ] を右クリックします。これが権限を確認する正しい方法である場合、フォルダはすべてのアクション (読み取り、書き込み....) を許可します。
  2. ファイルがなく、そのフォルダーのサブフォルダーが開かれていません。

なんで?フォルダーの名前を変更できる場合とできない場合がある理由はまだわかりません。

ヘルプ!!あなたの意見が必要です!!!

アップデート:

上記のコードを見てください: Textbox に入力された新しい名前でフォルダーの名前を変更したいtxtFilenFolderName:

protected void btnUpdate_Click(object sender, EventArgs e)
{
   string[] values = EditValue;
   string oldpath = 
       values[0];// = "D:\\C#Projects\\website\\Lecturer\\giangvien\\New folder"

   string oldName = values[2]; //= New Folder

   string newName = txtFilenFolderName.Text; //= New Folder1
   string newPath = string.Empty;

   if (oldName != newName)
   {
      newPath = oldpath.Replace(oldName, newName);
      Directory.Move(oldpath, newPath);
   }
   else
   {
      lblmessage2.Text = "New name must not be the same as the old ";
   }

}

デバッグしてみてください:

oldpath = "D:\\C#Projects\\website\\Lecturer\\giangvien\\New folder"
 oldName = New Folder
newName= New Folder1
newpath = "D:\\C#Projects\\website\\Lecturer\\giangvien\\New folder1"

すべてが正しいように見えますが、編集 ---> 名前の変更 ---> 更新 ---> ボタンをクリックするとエラーが発生します:Access to the path is denied D:\\C#Projects\\website\\Lecturer\\giangvien\\New folder

ヘルプ!

4

2 に答える 2

2

ログインしているユーザーに権限(読み取り/書き込み/変更)を付与します。または、プログラムを「管理者として」実行することもできます。

編集: これを試してください..アプリケーションに参照を追加しMicrosoft.VisualBasicてください。次に使用します

Microsoft.VisualBasic.FileIO.FileSystem.RenameDirectory("currentName", "newName");

それが役に立てば幸い :)

PS: RenameDirectoryパラメータを検証して を呼び出しますDirectory.Move。サーバーのフォルダーの名前を変更する場合は、ルート フォルダーの変更アクセス権を IIS ユーザーに付与できます。ただし、クライアント マシンのフォルダーの名前を変更する場合は、任意のフォルダーの名前を変更することはできません (一時フォルダーのようないくつかのディレクトリを除く)。

于 2013-10-26T09:29:36.780 に答える
0

一般に、Web サイトはクライアントのローカル ファイル システムに簡単にアクセスできるわけではありません。(そしてそれもまた良いことです!)

たとえば、この投稿を参照してください:ツリービュー asp.net C# でクライアント ファイル システム ディレクトリを取得する方法

于 2013-10-26T09:50:19.117 に答える