Как я обнаруживаю, чувствительна ли файловая система к регистру?

Комбинированный ответ, включающий каталог или конкретный список аргументов имен файлов:

import sys
import os.path
import glob

def processFile(filename):
    fileHandle = open(filename, "r")
    for line in fileHandle:
        # do some processing
        pass
    fileHandle.close()

def outputResults(filename):
    output_filemask = "out"
    fileHandle = open("%s.%s" % (filename, output_filemask), "w")
    # do some processing
    fileHandle.write('processed\n')
    fileHandle.close()

def processFiles(args):
    input_filemask = "log"
    directory = args[1]
    if os.path.isdir(directory):
        print "processing a directory"
        list_of_files = glob.glob('%s/*.%s' % (directory, input_filemask))
    else:
        print "processing a list of files"
        list_of_files = sys.argv[1:]

    for file_name in list_of_files:
        print file_name
        processFile(file_name)
        outputResults(file_name)

if __name__ == '__main__':
    if (len(sys.argv) > 1):
        processFiles(sys.argv)
    else:
        print 'usage message'
13
задан Epaga 17 August 2009 в 13:58
поделиться

4 ответа

Не используйте строки для представления файлов; используйте java.io.File:

http://java.sun.com/javase/6/docs/api/java/io/File.html#equals (java.lang.Object)

12
ответ дан 1 December 2019 в 23:48
поделиться

Я не думаю, что любой из существующих примеров на самом деле обрабатывает это правильно, необходимо записать файл в диск.

    private boolean caseSensitivityCheck() {
    try {
        File currentWorkingDir = new File(System.getProperty("user.dir"));
        File case1 = new File(currentWorkingDir, "case1");
        File case2 = new File(currentWorkingDir, "Case1");
        case1.createNewFile();
        if (case2.createNewFile()) {
            System.out.println("caseSensitivityCheck: FileSystem of working directory is case sensitive");
            case1.delete();
            case2.delete();
            return true;
        } else {
            System.out.println("caseSensitivityCheck: FileSystem of working directory is NOT case sensitive");
            case1.delete();
            return false;
        }
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}
0
ответ дан 1 December 2019 в 23:48
поделиться

Записать файл с именем «HelloWorld»; попытаться прочитать файл с именем "hELLOwORLD"?

1
ответ дан 1 December 2019 в 23:48
поделиться
boolean isFileSystemCaseSensitive = !new File( "a" ).equals( new File( "A" ) );
2
ответ дан 1 December 2019 в 23:48
поделиться
Другие вопросы по тегам:

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