Как сделать папку скрытой с помощью Java

Для Python 3

def rwh_primes2(n):
    correction = (n%6>1)
    n = {0:n,1:n-1,2:n+4,3:n+3,4:n+2,5:n+1}[n%6]
    sieve = [True] * (n//3)
    sieve[0] = False
    for i in range(int(n**0.5)//3+1):
      if sieve[i]:
        k=3*i+1|1
        sieve[      ((k*k)//3)      ::2*k]=[False]*((n//6-(k*k)//6-1)//k+1)
        sieve[(k*k+4*k-2*k*(i&1))//3::2*k]=[False]*((n//6-(k*k+4*k-2*k*(i&1))//6-1)//k+1)
    return [2,3] + [3*i+1|1 for i in range(1,n//3-correction) if sieve[i]]
16
задан Jørn Schou-Rode 4 January 2010 в 13:12
поделиться

5 ответов

Концепция скрытых файлов/папок очень специфична для операционной системы и недоступна через Java API.

В Linux файлы и папки, имя которых начинается с точки, скрыты по умолчанию во многих программах - сделать это очень просто.

В Windows "скрытые" - это специальный флаг, хранящийся в файловой системе. Для его изменения нет Java API; вы можете использовать Runtime.exec() для выполнения команды attrib.

.
15
ответ дан 30 November 2019 в 15:16
поделиться

под *nix вы просто переименовываете файл, чтобы

filename = ".".filename;
7
ответ дан 30 November 2019 в 15:16
поделиться

Чтобы сделать файл или каталог скрытым под Unix, его имя должно начинаться с периода (.).

Чтобы сделать файл скрытым под Windows, вам нужно установить 'скрытый' бит в его атрибутах. Стандартная библиотека Java не предлагает такой возможности (хотя есть метод file.isHidden()), и я не знаю, какой инструмент это делает.

.
5
ответ дан 30 November 2019 в 15:16
поделиться

Для нужд кроссплатформенности можно использовать какой-нибудь заводской образец. Но то, что сказали все остальные. Боюсь, что вы не сможете сделать так, чтобы она всплыла с одной строкой кода, так как я чувствую, что вы этого хотите. Мои соболезнования.

3
ответ дан 30 November 2019 в 15:16
поделиться

это работа операционной системы (и вы, конечно, босс операционной системы). Но вы можете выполнить команду атрибута (Windows) и сказать OS(Windows), что вы хотите сделать папку "скрытой".

public class Main {

    public static void main(String[] args) {
        try
        {            
            Runtime rt = Runtime.getRuntime();
            //put your directory path instead of your_directory_path
            Process proc = rt.exec("attrib -s -h -r your_directory_path"); 
            int exitVal = proc.exitValue();
        } catch (Throwable t)
          {
            t.printStackTrace();
          }

    }
}
3
ответ дан 30 November 2019 в 15:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: