これについて手を貸してもらえますか?
デスクトップのフォルダーに.dllファイルがあります。
c:\Program Files(86)\Program Folder\ ディレクトリにコピーする必要があります
。すでに「File.Copy」を実行しようとしましたが、フォルダ名にスペースを使用して機能させる方法がわかりません。"\"my folder\myfile.dll\"" のように完全なアドレスを引用符で囲みましたが、うまくいきません。
bash ファイルを書き込もうとしましたが、C# で実行する方法がわかりません。
助けてください。どんな解決策でも大歓迎です。
可能であれば、「強制上書き」も必要です。
質問する
4047 次
2 に答える
2
試す:
File.Copy(@"c:\Program Files(86)\Program Folder\mydll.dll", @"C:\mydll.dll");
強制的に上書きするには、次を使用します。
File.Copy(@"c:\Program Files(86)\Program Folder\mydll.dll", @"C:\mydll.dll",true);
MSDNのドキュメント
に従って:
public static void Copy(
string sourceFileName,
string destFileName,
bool overwrite
)
パラメーター
sourceFileName 型: System.String コピーするファイル。
destFileName 型: System.String 宛先ファイルの名前。これをディレクトリにすることはできません。
overwrite 型: System.Boolean 宛先ファイルを上書きできる場合は true。それ以外の場合は false。
別の回答で述べたように、適切な権限がない可能性があります。次の方法でこれを確認してください。
string directoryPath = @"c:\Program Files(86)\Program Folder";
bool isWriteAccess = false;
try {
AuthorizationRuleCollection collection = Directory.GetAccessControl (directoryPath).GetAccessRules (true, true, typeof (System.Security.Principal.NTAccount));
foreach (FileSystemAccessRule rule in collection) {
if (rule.AccessControlType == AccessControlType.Allow) {
isWriteAccess = true;
break;
}
}
} catch (UnauthorizedAccessException ex) {
isWriteAccess = false;
} catch (Exception ex) {
isWriteAccess = false;
}
if (!isWriteAccess) //we cant write to location
{
//handle notifications
} else { //we can write to the location
}
于 2012-09-07T18:37:18.633 に答える
1
パスのスペースは問題ありません。
しかし、ファイルをコピーするには管理者権限が必要であることを考慮しましたか? つまり、アプリケーションにマニフェスト ファイルが必要です。
また、実際の例外とコードを投稿してください。Atm 推測することしかできません
于 2012-09-07T18:36:36.910 に答える