有人可以帮我检查文件是否已处于锁定状态?
我的程序无法读取文件,因为它处于锁定模式,然后我重新创建文件,我的程序读取文件没有问题。
那么有没有办法检查文件是否已经处于锁定模式?
答案 0 :(得分:0)
尝试写入文件。如果你写不出来,它将被锁定
或
从Java File API尝试canWrite()java方法。
参考:docs.oracle.com/javase/7/docs/api/java/io/File.html#canWrite()
答案 1 :(得分:0)
写入文件,如果失败,则意味着您的文件被锁定。
#include <type_traits>
template <typename T, std::size_t R, std::size_t C>
struct Matrix
{
protected:
T test;
template <typename U, std::size_t D1, std::size_t D2, std::size_t D3>
friend Matrix<U, D1, D3> operator* (Matrix<U, D1, D2> const & m1,
Matrix<U, D2, D3> const & m2);
};
template <typename T, std::size_t D1, std::size_t D2, std::size_t D3>
Matrix<T, D1, D3> operator* (Matrix<T, D1, D2> const & m1,
Matrix<T, D2, D3> const & m2)
{
Matrix<T, D1, D3> retMat;
retMat.test = m1.test + m2.test;
return retMat;
}
int main ()
{
Matrix<long, 2U, 3U> a;
Matrix<long, 3U, 4U> b;
auto c { a * b };
static_assert( std::is_same<decltype(c), Matrix<long, 2U, 4U>>{}, "!" );
}
答案 2 :(得分:0)
上面建议的“研究”没有提示如何查看文件是否被锁定。即使文件已锁定,canWrite方法也将返回true。 canWrite可以做的是检查目录是否可写。如果目录和文件都可写,但是写入文件失败,则文件很可能已锁定。
我的测试代码:
can write dir tools: true
can write junk.txt: true
write failed
在一个测试中,我通过在excel中打开junk.txt来锁定它。文件锁定后,输出为
transform:scaleX(0.5)
未锁定文件时,写入成功。