소리는 읽기 전용 파일과 비슷합니까? 글쎄,별로.압축 해제 후 파일을 수정할 수 없습니다.
내 목표는 빌드 한 응용 프로그램에서 .zip 파일로 압축하여 모든 파일의 백업을 만드는 것입니다. 먼저 모든 파일을 수집하여 다른 폴더에 저장합니다 (예 : .exe 파일을 백업 할 필요가 없음). 그럼 사용하여 압축 IO.compression.ZipFile
ZipFile.CreateFromDirectory(backupDirectory, ZipDirectory);
나중에 사용자가 백업을 복원 할 때, 내가 먼저 기존 파일과 디렉토리를 삭제 한 후 압축을 풉니 다
ZipFile.ExtractToDirectory(openFileDialog1.FileName, installDirectory);
문제 : 파일 이제 하나의 파일이 .mdf 파일이므로 더 이상 테이블을 변경할 수 없으므로 앱이 쓸모 없게됩니다. 나는이 일을 시도했다 :
public void Recurse(DirectoryInfo directory)
{
foreach (FileInfo fi in directory.GetFiles())
{
//fi.Attributes |= FileAttributes.ReadOnly; //this didn't work eather
fi.IsReadOnly = false;
}
foreach (DirectoryInfo subdir in directory.GetDirectories())
{
Recurse(subdir);
}
}
this question.에서 작동하지 않았다. 그리고 '읽기 전용'플래그가 .mdf 속성에서 선택되어 있지 않기 때문에 작동하지 않을 것으로 예상됩니다. 또한 보안 탭을 살펴볼 때 :
SYSTEM, Admin 및 User가 동일하며, 내가 누락 된 것은 모든 검사가 Allowed로 설정된 Groupname 'Everyone'입니다. 수동으로 다시 그룹을 설정 한 후, 나는 그러나 여전히 로그인 할 수없는 것처럼 다른 오류를 받고, 몇 가지 개선 사항을 참조 로그인 [현재 사용자] 사용자 실패
편집 : 내가 사용하기 때문에 위의 보안 탭 문제였다 그 Recurse
방법. 상황을 악화 시켰습니다. 따라서 모든 파일에 file.IsReadOnly = false
을 사용하는 것은 좋은 해결책이 아닙니다.
질문 : 질문 : 속성/설정/권한을 변경하지 않고 파일을 올바르게 압축하고 압축을 해제하려면 어떻게합니까? ** 또는 ** 압축 해제 후 파일의 올바른 속성을 다시 설정하는 방법은 무엇입니까?
가능한 [추출 된 파일은 항상 읽기 전용]입니다. (http://stackoverflow.com/questions/10715768/extracted-files-are-always-read-only) – MethodMan
시도한 내용을 읽으십시오. 그 질문에 대한 답.바로 이것이 첫 번째 해결책을 얻은 곳이며 작동하지 않습니다. – CularBytes
파일이 읽기 전용으로 설정되지 않았기 때문에 (실제로'ZipFile'이 설정할 수있는 유일한 것입니다. 그리고 그 속성이 생성되었을 때 그 속성이 아카이브로 복사 된 경우에만), 거의 확실하게 보안 문제 및 프로그래밍 문제가 아닙니다. 압축 파일을 풀고있는 프로세스가 압축 해제 된 파일의 소유자가 될 계정에 의해 실행되고 있는지 또는 액세스 권한이 원하는 것과 일치하는 디렉토리에 파일의 압축을 풀면되는지 확인해야합니다 (예 : 파일은 디렉토리에서 상속받으며 원하는 사용자는 액세스 할 수 있습니다. –