如何检查文件是否处于锁定模式?

时间:2018-05-28 08:19:32

标签: java

有人可以帮我检查文件是否已处于锁定状态?

我的程序无法读取文件,因为它处于锁定模式,然后我重新创建文件,我的程序读取文件没有问题。

那么有没有办法检查文件是否已经处于锁定模式?

3 个答案:

答案 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)

未锁定文件时,写入成功。

相关问题