2014-07-13 2 views
0

FUSE-JNA를 사용하여 퓨즈 미러 파일 시스템을 작성했습니다. 어느 미러 로컬 디렉토리가 사용 되었습니까?퓨즈 파일 시스템 - 사무실 파일에 액세스하는 동안 일반 입/출력 오류가 발생했습니다.

이 미러 파일 시스템을 사용하면 모든 유형의 파일을 문제없이 올바르게 열 수 있지만 모든 유형의 사무실 파일을 열 수는 없습니다. .docs, .xls 등. 그리고 오피스 파일을 여는 중에 오류가 발생합니다.

http://i61.tinypic.com/2wd4j9c.png

: 나는 그 LibreOffice와 문제를 생각, 그래서 그것을 제거하고 오픈 오피스를 설치했습니다. 하지만 같은 문제가 발생합니다. 둘째로, MirrorFileSystem에서 사무실 파일에 액세스하려고하면 오류가 표시됩니다. 우분투 기본 파일 시스템을 통해 정상적으로 액세스하면 Office 파일이 제대로 열립니다.

그래서 내 파일 시스템에 문제가 있습니다.

마지막으로, (내가 모르는 여부의 문제 여부를하지만 관련) 내가 오른쪽 아래로, 파일> 속성> 권한의 쇼 모든 필드 비활성화를 클릭 나의 미러 파일 시스템의

enter image description here

이 내 getatt() 방법 :

public int getattr(final String path, final StatWrapper stat) 
{ 
.... 
if (f.isFile()) 
    { 
     stat.setMode(NodeType.FILE,true,true,true,true,true,true,true,true,true); 
     stat.size(f.length()); 
     stat.atime(f.lastModified()/ 1000L); 
     stat.mtime(0); 
     stat.nlink(1); 
     stat.uid(0); 
     stat.gid(0); 
     stat.blocks((int) ((f.length() + 511L)/512L)); 
     return 0; 
    } 
... 
} 

방법 일반적으로 입력/출력 오류 오피스 파일 상태를 해결하는 나를 인도하세요?

답변

0

답변 해 주셔서 감사합니다.

웹에서 검색 한 결과 많은 웹 사이트에서 파일 잠금이 원인으로 표시되었습니다. https://forum.openoffice.org/en/forum/viewtopic.php?f=10&t=2020는 등

그래서 퓨즈에, 나는 파일 잠금 기능을 구현 단순히 0

내 문제가 해결 돌아갑니다. 이제 모든 유형의 사무용 파일을 열 수 있습니다.

하지만 잘 모르겠습니다. 완벽한 해결책입니까

1

Office 파일은 특별하지 않습니다. 파일 시스템 구현에는 몇 가지 다른 문제가 있으며 트리거와 원인이 무엇인지 정확하게 알아 내기 위해 더 많은 디버깅 작업을 수행해야합니다. 상대방이 다루는 파일 유형에 따라 다르게 작동하는 파일 시스템 코드에 물건이 없으면 트리거가 진정으로 "파일이 사무실 파일"인 것은 거의 없습니다. 첫 번째 디버깅 단계로 파일의 sha1sumstat 출력을 퓨즈 파일 시스템과 루트 파일 시스템에서 비교하여 일치하는지 확인할 수 있습니다. 그렇지 않으면 파일 시스템 코드를 조정하십시오. 또한 파일 시스템 클래스에서 로깅을 활성화하고 어디에서나 I/O 오류 코드를 반환하는지 확인할 수 있습니다. 오류 메시지 "일반 입/출력 오류"로 인해 소리가납니다.

권한 필드가 사용 중지 된 이유는 해당 파일이 root에 의해 소유되어 있고 사용자가 root이 아니기 때문에 권한을 변경할 수 없기 때문입니다. 파일이 루트에 의해 소유되는 이유는 stat.uid(0);stat.gid(0);getattr에 설정했기 때문입니다. UID 0 및 GID 0은 각각 루트 사용자 및 루트 그룹 용입니다. 퓨즈 -JNA는 이미 기본 UID와 GID를 getattr에 넣습니다. 따라서 이것을 사용하려면 stat.uid(0); 또는 stat.gid(0);을 호출하지 마십시오.

관련 문제