Java Не удалось создать новый файл в Windows 7? - PullRequest
1 голос
/ 15 сентября 2011

Я пытаюсь создать новый файл в Windows 7, используя

file.createNewFile()

, но файл не создается, и я получил следующее исключение

Message:
The system cannot find the path specified
Stack Trace:
[java.io.IOException: The system cannot find the path specified,
    at java.io.WinNTFileSystem.createFileExclusively(Native Method),
    at java.io.File.createNewFile(File.java:883),
    at com.mercury.mtf.actions.file.CreateEmptyFileTask.execute(CreateEmptyFileTask.java:56),
    at com.mercury.mtf.actions.file.CreateEmptyFileAction.execute(CreateEmptyFileAction.java:42),
    at com.mercury.mtf.core.AbstractAction.run(AbstractAction.java:50),
    at com.mercury.mtf.core.Unit.runUnitAction(Unit.java:347),
    at com.mercury.mtf.core.Unit.executeUnitAction(Unit.java:176),
    at com.mercury.mtf.core.Unit.run(Unit.java:121),
    at com.mercury.mtf.core.execution.DefaultUnitExecutor.call(DefaultUnitExecutor.java:24),
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303),
    at java.util.concurrent.FutureTask.run(FutureTask.java:138),
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98),
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207),
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886),
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908),
    at java.lang.Thread.run(Thread.java:619)]

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

Ответы [ 3 ]

4 голосов
/ 15 сентября 2011

Убедитесь, что ваш символ разделителя пути правильный. Вы можете использовать одиночную косую черту или двойную косую черту. Например,

File f = new File("C:\\Documents and Settings\\thandasoru\\My Documents\\temp.txt");
f.createNewFile();
0 голосов
/ 03 января 2014

Используйте File newFile=new File(folderName+chipItems[i]); вместо File newFile=new File(folderName+chipItems[i], "w");.Это будет хорошо.Избегайте Файлового режима, если вы хотите использовать такие функции, как сенсорная команда Unix.

0 голосов
/ 15 сентября 2011

Если файл временный, вы можете использовать эту функцию и забыть обо всех проблемах с правами доступа:

File.createTempFile("prefix", "suffix") 
...